zoukankan      html  css  js  c++  java
  • 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中可以看到自己请求记录,如下:

  • 相关阅读:
    Linux之流程判断
    Linux之Shell变量
    Linux之RAID
    Y-Sport
    [ST2017] Lab1: Triangle type and Junit test
    [ST2017] Hw3: Prime Path
    [ST2017] Hw2: Fault, Error, Failure and test case for projects
    [SPM2017] Hw1: The outcome of my project [Deadline: 23:59:59, Mar.1, 2017]
    [ST2017] Hw1: An error from my past projects [Deadline: 23:59:59, Feb.27, 2017]
    一个使用Jmeter做接口性能测试的实战案例
  • 原文地址:https://www.cnblogs.com/zuowj/p/4556888.html
Copyright © 2011-2022 走看看