【版本管理】多人协作及标签管理
当你从远程仓库克隆时,实际上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