zoukankan      html  css  js  c++  java
  • 【版本管理】多人协作及标签管理

    当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来 了,并且,远程仓库的默认名称是origin。

    要查看远程库的信息,用 git remote 或用 git remote -v 显示更详细的信息。

    push推送分支:

    推送分支,就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分⽀支上:

    git push origin master

    如果要推送其他分支,比如dev,就改成:

    git push origin dev 

    克隆远程库的分支:

    git clone xxxxxx.git ,从远程库clone时,默认情况下,只能看到本地的master分支。可以用git branch命令看看。

    要在dev分支上开发,就必须创建远程origin的dev分支到本地,于是用这个命令创建本地dev分支: git checkout -b dev origin/dev 。

    多人协作的工作模式通常是这样:

    1. 首先,可以试图用git push origin branch-name推送自己的修改;

    2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

    3. 如果合并有冲突,则解决冲突,并在本地提交;

    4. 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!


    如果 git pull 提示“no tracking information”,则说明本地分支和远程分支的链接关系没 有创建,用命令git branch --set-upstream branch-name origin/branch-name。 这就是多人协作的工作模式,一旦熟悉了,就非常简单。

    标签管理:

    创建标签:
    在Git中打标签非常简单,首先,切换到需要打标签的分支上:

    $ git branch

    * dev master

    $ git checkout master

    Switched to branch 'master'

    然后,敲命令git tag name就可以打一个新标签:

    $ git tag v1.0

    可以用命令git tag查看所有标签:

    $ git tag

    v1.0

    默认标签是打在新提交的commit上的。

    需要打在别的commit上,则需要通过git log找到commit id,再 $ git tag v0.9 commit id; 

    可以用$git show tagname,如 git show v1.0查看标签信息。

    还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:

    $ git tag -a v0.1 -m "version 0.1 released" 3628164 

    还可以通过-s用私钥签名一个标签: $ git tag -s v0.2 -m "signed version 0.2 released" fec145a ,但签名采用PGP签名,因此,必须首先安装gpg(GnuPG),如果没有找到gpg,或者没有 gpg密钥对,就会报错。

    操作标签:
    如果标签打错了,也可以删除: $ git tag -d v0.1

    如果要推送某个标签到远程,使用命令git push origin tagname: $ git push origin v1.0 

    或者,一次性推送全部尚未推送到远程的本地标签: $ git push origin --tags 

    如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除: $ git tag -d v0.9 

    然后,从远程删除。删除命令也是push,但是格式如下: $ git push origin :refs/tags/v0.9 

  • 相关阅读:
    Activity传递数据
    Java JDK环境变量配置
    Java与IOS日期格式
    第十四篇 ANDROID的 BLUETOOTH 实现机制--中介模式和代理模式
    第十五篇 Android 的Backup服务管理机制--助手模式
    第十八篇 ANDROID的声音管理系统及服务
    使用Unsafe来实现自定义锁
    rabbitMQ实现推迟队列
    简单分布式锁的实现
    [原创]通过切面与分布式锁实现合并相同请求
  • 原文地址:https://www.cnblogs.com/zachary93/p/6137888.html
Copyright © 2011-2022 走看看