zoukankan      html  css  js  c++  java
  • Git标签

    标签概念:
    发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。
    Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(跟分支很像对不对?但是分支可以移动,标签不能移动),所以,创建和删除标签都是瞬间完成的。
    Git有commit,为什么还要引入tag?
    “请把上周一的那个版本打包发布,commit号是6a5819e...”
    “一串乱七八糟的数字不好找!”
    如果换一个办法:
    “请把上周一的那个版本打包发布,版本号是v1.2”
    “好的,按照tag v1.2查找commit就行!”
    所以,tag就是一个让人容易记住的有意义的名字,它跟某个commit绑在一起。
    当我们提交了本次大版本的最后一次修改之后,就能为该次版本创建一个tag,作为以后追溯的版本代号
     
    [root@VM-75-64 test]# git log --pretty=oneline --abbrev-commit
    68b1e43 deploy test.txt
    295b7e1 Merge branch 'dev'
    d402e91 deploy test.txt
    eec652d merge with --no-ff
    762a637 dev deploy
    5210a22 final version
    c3ab705 master deploy
    3e1511e branch deploy
    53b47a3 master deploy
    d131953 feature1 deploy
    33da3e4 deploy readme
    6db6abf conflict fixed
    0b6936b lines add
    1d98d5b add lines
    3501a30 branch test
    df4ceaf first commit
     
    上面是本次版本的所有提交记录,并附加上对应的版本号;
    此时,我们为以往的一次提交创建标签:
     
    [root@VM-75-64 test]# cat test.txt
    lalala
    ni hao ya
    another test
    [root@VM-75-64 test]# git tag V0.1 5210a22            #为commitID为5210a22创建标签为V0.1
    [root@VM-75-64 test]#
    [root@VM-75-64 test]# git tag                         #此时查看tag看到就有两个标签了
    V0.1
    lala1                            
    [root@VM-75-64 test]# git show lala1                   #查看标签对应的详情
    commit 68b1e437b8e49c5d0e27b9e9096d073b1b889dbb
    Author: zhangjian <zhangjian@xnhd.com>
    Date:   Thu May 16 11:52:04 2019 +0800
     
        deploy test.txt
     
    diff --git a/test.txt b/test.txt
    index b149136..f7ca655 100644
    --- a/test.txt
    +++ b/test.txt
    @@ -1,2 +1,3 @@
    lalala
    ni hao ya
    +another test
     
    [root@VM-75-64 test]# git checkout -b test_tag            #创建一个测试分支
    Switched to a new branch 'test_tag'
    [root@VM-75-64 test]# git branch
      dev
      master
    * test_tag
    [root@VM-75-64 test]# git show V0.1                        #查看标签V0.1的详情
    commit 5210a2233e0c97d8e55785659007e323bfccc222
    Merge: c3ab705 3e1511e
    Author: zhangjian <zhangjian@xnhd.com>
    Date:   Wed May 15 17:11:08 2019 +0800
     
        final version
     
    diff --cc readme.md
    index dd0c02b,d94c94e..fe4f5b8
    --- a/readme.md
    +++ b/readme.md
    @@@ -1,4 -1,4 +1,4 @@@
      Git test
      Create a new branch is quick
      Create a new branch is quick and simple
    - Master deploy
    -Tokyo deploy
    ++Ok let us deploy it together
    [root@VM-75-64 test]# git reset --hard 5210a2233e0c97d8e55785659007e323bfccc222        #拉取应对版本代码
    HEAD is now at 5210a22 final version
     
    由于标签详情上会有commitID,此时我们就能通过这个commitID去拉取到对应的版本代码。
     
    [root@VM-75-64 test]# cat readme.md
    Git test
    Create a new branch is quick
    Create a new branch is quick and simple
    Ok let us deploy it together                                       #验证代码版本
     
    [root@VM-75-64 test]# git branch
      dev
      master
    * test_tag                                                        #此时我们就能在测试分支的对应代码上继续开发了
     

    以上,共勉!

     
  • 相关阅读:
    Oracle数据库(3-7)
    Oracle数据库之PL/SQL程序设计简介
    JAVA总结
    JAVA数据库编程、JAVA XML解析技术
    JAVA网络编程
    【转载】linux启动jmeter,执行./jmeter.sh报错解决方法
    【转载】JMeter学习(十九)JMeter测试MongoDB
    【转载】JMeter学习(二十)JMeter处理Cookie与Session
    【转载】JMeter学习(十八)JMeter测试Java(二)
    【转载】JMeter学习(十七)JMeter测试Java
  • 原文地址:https://www.cnblogs.com/storyawine/p/13408580.html
Copyright © 2011-2022 走看看