Tag 创建、查看、根据tag回滚

目录

一、创建 轻量级Tag(无注释)

1、普通的打标签(标签默认打在本分支最新的commit上)

2、将标签打在在过往的commit上

 二、创建重量级Tag(有注释)

1、创建

2、查看

三、查看标签

1、标签列表

 2、标签详情

四、把本地仓库分支tag推送到远程服务器

1、push单个tag

2、push所有tag

五、通过tag恢复代码

1、查看标签的详情,找出打标签的那次提交的commit id

(a)查看本地所有标签

(b)查看某个标签的详细信息

2、版本回退(分支回滚到某次提交)

六、取消回滚

1、查看 commit id

2、回到回退前版本


git tag命令是对本地仓库分支添加标签,需要执行操作,把标签同步到远程服务器。

请在Git控制台上确认你的账号是否有权限推送Tag


一、创建 轻量级Tag(无注释)

切换至要打标签的分支

1、普通的打标签(标签默认打在本分支最新的commit上

git tag <name>

2、将标签打在在过往的commit上

执行 git log 命令,找到历史的commit id

 并执行下列命令

$ git tag {tag_name} {commitId}

 二、创建重量级Tag(有注释)

1、创建

// -a指定标签名,-m指定说明文字:
git tag -a {tag_name} -m "{tag_desctiption}" {commitId}

2、查看

git show <tagname>

 如:

$ git show v0.1
tag v0.1
Tagger: whd <whd@01zc.com>
Date:   Thu Sep 14 14:22:25 2017 +0800
 
version 0.1 released push url
 
commit d5a65e9a08be3820d0b0a59b3df9750168557cd5 (tag: v0.1)
Author: whd <wanghaidong@01zhuanche.com>
Date:   Tue Sep 12 20:48:28 2017 +0800
 
    push url

三、查看标签

注意,标签不是按时间顺序列出,而是按字母排序的

1、标签列表

git tag

 2、标签详情

git show <tagname>


四、把本地仓库分支tag推送到远程服务器

默认情况下,git push并不会把tag标签传送到远端服务器上,只有通过显式命令才能分享标签到远端仓库。

1、push单个tag

git push origin <tag_name>

2、push所有tag

git push --tags

或

git push origin --tags

当远程有多个服务的时候,远程服务名称是必须的,而如果远程只有一个远程服务则远程服务名称可以省略。


五、通过tag恢复代码

1、查看标签的详情,找出打标签的那次提交的commit id

(a)查看本地所有标签

$ git tag
tag_20170908
tag_20170914
v0.1
v0.9
v1.o

(b)查看某个标签的详细信息

$ git show v0.1
tag v0.1
Tagger: whd <wanghaidong@01zhuanche.com>
Date:   Thu Sep 14 14:22:25 2017 +0800
 
version 0.1 released push url
 
commit d5a65e9a08be3820d0b0a59b3df9750168557cd5 (tag: v0.1)
Author: whd <wanghaidong@01zhuanche.com>
Date:   Tue Sep 12 20:48:28 2017 +0800
 
    push url

commit id很长,但只需要记住前面几位就可以了,这里我们只取前6位:d5a65e,Git会根据前面几位自动识别。

2、版本回退(分支回滚到某次提交)

(a)通过commit id进行回退(其实就是把head指针指向特定版本位置)到执指定本

git reset --hard <commitId>

(b)回退到上个版本(即最后一次提交的版本)

git reset --hard HEAD

特别注意:

        版本回滚后,若立马修改并发版本,那么你就犯了严重的错误,因为修改后的代码是无法与正在开发的版本合并哒,也就是说刚刚修改并不能加入现有的代码。

        通过标签回退版本后,要马上拉一个分支,然后当前主干分支要立即回到原来的位置,否则正在开发的代码可能白干了,接着在刚拉的分支上修改bug,修改完毕合并到主干上

(c)拉新分支

版本回滚完成后,需要先基于当前代码,拆出来一个新的分支;

然后将原来的分支立刻回滚到最新的位置。

bug的修复必须在新分支上进行,绝对不可以回滚后直接在原分支上进行修改。

六、取消回滚

其实就是再执行一次回退操作,只不过此时使用的commitId应为最新的那次提交的

1、查看 commit id

回退版本需要commit id,向前进同样

因为已经回滚的原因,此时执行 git log 命令,只能看到当前回滚的commit id,无法看到最新的,所以需要执行  git reflog

git reflog

git reflog 相比 git log 能查询更多的日志信息(包括commit和reset的操作,即使是已删除的),git reflog 能查询到所有的日志commit id 即使是删除的

具体一个例子,假设有三个commit

commit3: add test3.c

commit2: add test2.c

commit1: add test1.c

这样提交了三个,也就是有三个commit id,commit3是最后提交的。

如果执行 git reset --hard HEAD 则 回滚到上一次提交的版本,既回退到 commit2 ,相当于删除了commit3。

若此时需要恢复commit3,则需要获取到 commit3 的 commitId,但因为回退原因git log是看不到commit3的commit id的,这个时候就要使用git reflog


2、回到回退前版本

git reset --hard aaff087

此时,取消回滚的操作已经完成了

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值