打标签

    Git可以给历史中的某一个提交打上标签,以示重要,人们通常使用此功能来标记发布结点(v1.0等)



查看标签

    git tag                         #以字母顺序列出标签


    git tag -l 'v1.8.5*'            #列出已v1.8.5开头的标签

        v1.8.5

        v1.8.5.1

        v1.8.5.2

        v1.8.5.3

        v1.8.5.4

        v1.8.5.5


创建标签

    常用标签:轻量标签(lightweight)与附注标签(annotated)


    轻量标签:很像一个不会改变的分支,它只是一个特定提交的引用

    附注标签:是存储在Git数据库中的一个完整对象,包含打标签者的名字、邮件、日期,标签信息,并且可以使用GPG签名与验证,通常建议创建附注标签



附注标签

    git tag -a v1.0.0 -m 'version 1.0.0'

    git tag

        v1.0.0

    

    -m:指定一条存储在标签中的信息,如果不使用-m选项,Git会运行编辑器要求你输入信息

      


    git show v1.0.0                                 #查看标签信息和其对应的提交信息

        tag v1.0.0

        Tagger: huyuan

        Date:   Sun Oct 22 16:20:28 2017 +0800


        version 1.0.0


        commit 000b2e58dccc803407885057433cc5fc40dc1d1d

        Author: huyuan

        Date:   Sun Oct 22 16:20:07 2017 +0800


            test-gat


        diff --git a/a.py b/a.py

        index e69de29..d00491f 100644

        --- a/a.py

        +++ b/a.py

        @@ -0,0 +1 @@

        +1


    输出显示了打标签者的信息、打标签的日期时间、附注信息,然后显示具体的提交信息。





轻量标签

    轻量标签本质上是将提交和校验和存储到一个文件中,没有保存任何其他信息

    

    git tag v1.0.0.5                        #创建轻量标签

    git show v1.0.0.5                       #查看标签

        commit 000b2e58dccc803407885057433cc5fc40dc1d1d

        Author: huyuan

        Date:   Sun Oct 22 16:20:07 2017 +0800


            a


        diff --git a/a.py b/a.py

        index e69de29..d00491f 100644

        --- a/a.py

        +++ b/a.py

        @@ -0,0 +1 @@

        +1



对过去的提交打标签:

    git log --pretty=oneline --abbrev-commit            #查看历史版本信息

        b5e309e version-4

        1008c08 version-3

        000b2e5 versino-2

        e4c1d11 version-1


    git tag -a v1.2.0 000b2e5                             #为versino-2的提交打标签



共享标签

    默认情况下git push并不会传送标签到远程仓库上,在创建完标签后你必须显式地推送标签到远程仓库上 

    git push origin v1.2.0                  #推送v1.2.0到远程仓库上


    git push origin --tags                  #将所有不在远程仓库上的标签全部推送到远程仓库上




Git别名

使用git config命令为每一个命令设置一个别名


git config --global alias.ci commit                 #定义别名

git config --global alias.st status                 #alias.别名 commant

git config --global alias.last 'log -1 HEAD'


这时git commit等于git ci    git status等于git st      git last查看最后一次提交的信息



git config --global alias.unstage 'reset HEAD --'


这时git reset HEAD -- fileA 等于 git unstage fileA