Git学习笔记(三)
一、标签是什么
发布一个版本时,我们通常先在版本库中打一个标签,这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。
Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(跟分支很像对不对?但是分支可以移动,标签不能移动),所以,创建和删除标签都是瞬间完成的。
二、创建标签
Git 使用的标签有两种类型:轻量级的(lightweight)和含附注的(annotated)。轻量级标签就像是个不会变化的分支,实际上它就是个指向特定提交对象的引用。而含附注标签,实际上是存储在仓库中的一个独立对象,它有自身的校验和信息,包含着标签的名字,电子邮件地址和日期,以及标签说明,标签本身也允许使用 GNU Privacy Guard (GPG) 来签署或验证。一般我们都建议使用含附注型的标签,以便保留相关信息;当然,如果只是临时性加注标签,或者不需要旁注额外信息,用轻量级标签也没问题。
1.创建轻量级的标签
$ git tag v1.0 //v1.0即为标签名,也可理解为定义的版本名,默认标签是打在最新提交的commit上的
$ git tag v0.9 commitId //指定为某个提交ID创建标签
2.创建含附注的标签
$ git tag -a v1.4 -m 'my version 1.4'
3.创建签署标签
$ git tag -s v1.0 -m 'my signed version 1.0'
注意:签名采用PGP签名,因此,必须首先安装GPG,如果没有找到gpg,或者没有gpg密钥对,就会报错
三、查看标签
1.查看所有标签
$ git tag
显示的标签按字母顺序排列,所以标签的先后并不表示重要程度的轻重。
2.用特定的搜索模式列出符合条件的标签(如下列出标签名前面为v1.的所有标签)
$ git tag -l 'v1.*'
3.使用 git show
命令查看标签的信息
$ git show v1.0
四、操作标签
$ git push origin <tagname> //可以推送一个本地标签 $ git push origin --tags //可以推送全部未推送过的本地标签 $ git tag -d <tagname> //可以删除一个本地标签 $ git push origin :refs/tags/<tagname> //可以删除一个远程标签
五、使用GitHub参与开源项目
1.首先你自己必需要有GitHub账号并已登录成功。
2.找到指定的开源项目GitHub地址,例如:
3.点击图上的Fork按钮,会在自己账号下克隆一个相同的仓库,例如:
4.使用git clone命令克隆到本地仓库,如:
$ git clone git@github.com:wheeky/learngit.git
5.在本地进行相应的操作,比如新增了一个文件(CTextBox.cs):
$ git add CTextBox.cs $ git commit 'add CTextBox.cs'
6.使用git push命令推送更新到远程仓库:
$ git push
此时远程仓库就可以看到相应的更新(红色框内显示最后提交的信息),如图:
7.创建pull request请求,向开源项目的作者发送更新请求,如下列图示:
点击“New pull request”按钮,并在随后的页面里填写相应的标题、备注说明等信息提交即可,剩下的就是等原作者的处理。若提交成功可在作者的开源项目的Pull requests中可以看到自己请求记录,如下: