git tag相关

这篇具有很好参考价值的文章主要介绍了git tag相关。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

git tag创建、远程推送、回退以及强推push -f_苦咖啡-coffe的博客-CSDN博客_git tag

一、给本地仓库分支打轻量级tag标签
1、在Git中打标签非常简单,首先,切换到需要打标签的分支上:

$ git branch
  devwhd
  gray
* master
  optimize_sel_driver_20170911
  pre_production
2、然后,敲命令git tag <name>就可以打一个新标签:

$ git tag v1.0
3、可以用命令git tag查看所有标签:

$ git tag
tag_20170908
tag_20170914
v1.o
4、默认标签是打在最新提交的commit上的。有时候,如果忘了打标签,比如,现在已经是周五了,但应该在周一打的标签没有打,怎么办?

方法是找到历史提交的commit id,然后打上就可以了

$ git log --pretty=oneline --abbrev-commit
aaff087 (HEAD -> devwhd, tag: v1.o, origin/devwhd) url add
c603e59 aaa
ae636a8 aaaa
471fd27 url update
d5a65e9 push url
b38926c url
cb96205 update sed msg
40c45b5 cong
61328f7 time git
9bc2e9b paida
6dac88d 派单规则修改
5、比方说要对url update这次提交打标签,它对应的commit id是471fd27,敲入命令:

$ git  tag v0.9 471fd27
6、再用命令git tag查看标签:

$ git tag
tag_20170908
tag_20170914
v0.9
v1.o
注意,标签不是按时间顺序列出,而是按字母排序的。可以用git show <tagname>查看标签信息:

$ git show v0.9
commit 471fd274b47d36818204dbd23e6e646a1269b8ef (tag: v0.9)
Author: whd <whd@01zc.com>
Date:   Tue Sep 12 20:55:46 2017 +0800
 
    url update
可以看到,v0.9确实打在ulr update这次提交上。

二、上面我们打的tag是轻量级的也就是一般的tag没有注释,下面看看有注释的标签
1、创建带有说明的标签,用-a指定标签名,-m指定说明文字:

$ git tag -a v0.1 -m "version 0.1 released push url" d5a65e9
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
这样我们就能看到我们添加的tag以及相关注释,比如这里我们添加的注释是version 0.1 released push url

ok 到这里我们就给相关分支的某些提交版本添加了tag,但是git tag命令是对本地仓库分支加的标签,为了能把标签同步到远程服务器,我们需要做如下操作

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

1.push单个tag,命令格式为:

git push origin [tagname]

$ git push origin tag_20170908
将本地 tag_20170908的tag推送到远端服务器

2.push所有tag,命令格式为:

git push [origin] --tags

git push --tags

git push origin --tags

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

ok 到这里添加 tag标签push tag标签结束……

以上命令经检验通过,如果不起作用,请在Git控制台上确认你的账号是否有权限推送Tag。这一点很重要,因为这个原因,我有过一段时间很抓狂。

四、通过标签恢复代码

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

查看本地所有标签

$ git tag
tag_20170908
tag_20170914
v0.1
v0.9
v1.o
查看某个标签的详细信息

$ 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会根据前面几位自动识别的,当然,你的commit id跟我的是不一样的。

2、版本回退(将主干分支回退到某个版本)

下面我们就通过commit id回到发版本时候的代码去

git reset --hard d5a65e
注意把d5a65e换成你的commid id。回退完毕,其实就是把head指针指向了制定版本位置

当然写commit  id是可以回滚到任何版本,单在真实环境下我们用的比较多的应该是返回到上个版本即最后一次提价的版本这个我们可以使用如下命令

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

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

3、拉分支

主干分支回退版本后,从回退后的主干分支立即拉取分支,这里取名bugfix分支,假如这里我们是从master主干分支回退后再拉新分支的,流程如下:

(1) 切换到master分支

git chekcout master
(2) 更新为最新

git  pull
(3) 拉取修改bug新分支

git checkout -b bugfix
(4) 拉取新分支后查看分支

git  branch
ok到这里回滚的准备我们做好了

4、主干分支立即回到原来的位置

(1) 首先回到主干分支

git chekcout master
(2) 查看回去的commit id

回退版本需要commit id,向前进同样也是的。还记得我在第三次提交完毕后,用git log命令查看提交记录吗,现在我们需要第三次提交的commit id,再用git log命令:

git  log
查看当前分支提交的log日志
可以看到只有第一次的提交记录了,因为这个时候版本回退了git log是查不到第三次提交记录的,怎么办呢,怎么才能回去呢? 
我们用下面这个命令:

git reflog
git reflog 相比git log能查询更多的日志信息,两个的具体区别之后再详细学习,反正使用git reflog 能查询到所有的日志commit id即使是删除的。

(3) 回到回退前版本

git reset --hard aaff087
ok  这样master主干分支回到了回退前的版本状态即回到最新的版本啦

(4) 切换到bugfix分支,修改bug

git checkout bugfix
(5) bugfix 分支上修改bug并添加提交

当我们在bugfix分支上修改了bug后要把修改后的代码add、commit

git  add fileName
git commit  -m "bugfix"
(6) 将bugfix分支合并到主干分支上

在bugfix分支上修复了紧急bug之后,就可以发一个新的版本,之后就要把修复后的代码合并到我们的主干上,不然下次发版本这个bug还是存在的。合并用下面的命令:

git checkout master //先切换到主干上
git merge bugfix    //再合并修改bug的分支
(7) 冲突解决

在合并后你会发现,有冲突,这是必然的,因为我们在两个分支上修改了同一个文件,我们可以使用git status来查看那些文件冲突了。

git  status
ok 这样我们就能看到具体冲突的文件了,我们开始修改冲突文件:

其中<<<<<<Head到======这个是当前分支,也就是master分支的内容,从======到>>>>>>>bugfix,是bugfix分支的内容 
修改冲突很简单啦,把多余的内容去掉就可以了,ok这样我们的冲突解决了,提交修改后的代码到master。

ok 到此我们的代码回滚就搞定了!!!

五、git log和git reflog 的区别
git reflog 可以查看所有分支的所有操作记录(包括commit和reset的操作),包括已经被删除的commit记录,git log则不能察看已经删除了的commit记录

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

(1) git  commit -m"add test1.c"
 
(2) git  commit -m"add test2.c"
 
(3)git  commit -m"add test3.c"
这样提交了三个,也就是有三个commit id,commit3是最后提交的。

如果执行git reset --hard HEAD~1则 删除了commit3,如果发现删除错误了,需要恢复commit3,这个时候就要使用git reflog 因为回退原因使用git log是看不到commit3的commit id的

六、强推 push -f
情况理解:当我们的master分支想回退到某个之前的版本时需要做如下流程:

1、git checkout  master :本地切换到master分支

2、git pull : 本地分支跟新为最新(非必须,只是习惯)

3、git log 、git  reflog :查看提交记录,寻找合适的commitId (注意这里的commitid一定要注意,因为我们开发分支的版本号在合并的时候也会被合并过来)

4、git  reset --hard commitid :回滚到指定的版本、git reset --hard HEAD:会滚到之前一个版本

这里为什么会写两个那,因为HEAD 之前版本就是master的版本也就是各个开发分支merge时的版本所以不会存在commitid是分支版本的问题。

5、git  push : 将本地代码推到远程,但是这时会报错误,不会让你推因为你的本地版本比远程低一个版本,所以他会要求你更新为最新的在push但是这样的话就会有问题啊,把我们回滚的又覆盖了,所以我们不能更新,所以不能使用这个命令,只能使用下面的6这个命令了!!!

6、git push -f  origin master(修改这里的master为你的分支名称,不要把你的分支强推到master分支) :将本地代码强制推到远程,也就是用本地代码覆盖远程。

OK这样回退就完成了!
————————————————
版权声明:本文为CSDN博主「苦咖啡-coffe」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qh_java/article/details/77979622

t查看tag命令:

git tag
git切换到tag
git checkout tag_name 
此时git可能会提示你当前处于“detached HEAD” 状态。因为tag相当于一个快照,不能修改它的代码。需要在tag代码基础上做修改,并创建一个分支

git checkout -b branch_name tag_name
————————————————
版权声明:本文为CSDN博主「安果移不动」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/mp624183768/article/details/120897741文章来源地址https://www.toymoban.com/news/detail-400670.html

到了这里,关于git tag相关的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • git远程仓库版本回退

    如果你的错误提交已经推送到自己的远程分支了,那么就需要回滚远程分支了。 首先要回退本地分支: 紧接着强制推送到远程分支: 注意:本地分支回滚后,版本将落后远程分支,必须使用强制推送覆盖远程分支,否则无法推送到远程分支 使用git reset回退公共远程分支的版

    2024年02月11日
    浏览(43)
  • git-gitHub-本地仓库-远程仓库-github静态页面相关配置-docusaurus项目相关配置以及部署

    安装(略) 配置 配置 name 和 email 使用 git: 查看当前仓库的状态 初始化仓库 文件状态: 未跟踪 已跟踪 暂存 未修改 已修改 未跟踪 → 暂存 暂存 → 未修改 未修改 → 修改 修改代码后,文件会变为修改状态 常用的命令 重置文件 删除文件 移动文件 分支 git 在存储文件时,

    2024年02月13日
    浏览(59)
  • git tag相关

    git tag创建、远程推送、回退以及强推push -f_苦咖啡-coffe的博客-CSDN博客_git tag 一、给本地仓库分支打轻量级tag标签 1、在Git中打标签非常简单,首先,切换到需要打标签的分支上: $ git branch   devwhd   gray * master   optimize_sel_driver_20170911   pre_production 2、然后,敲命令git tag name就可

    2023年04月08日
    浏览(20)
  • Git(9)远程仓库版本回退

    (1)如果提交了一个错误的版本,怎么回退版本? (2)如果提交了一个错误的版本到远程分支,怎么回退远程分支版本? (3)如果提交了一个错误的版本到公共远程分支,又该怎么回退版本? (1)先用下面命令找到要回退的版本的commit id (2)接着回退版本 0bfafd就是你要

    2024年02月08日
    浏览(37)
  • Git版本回退并提交远程

    1、进入远程git,在提交纪录中找到需要回退的版本,复制版本号   2、终端进入项目,并执行git reset --hard 23a50a1fXXX41XXXXX0227  3、把修改推送至远程,执行已下指令 git push -f -u origin master(master为指定分支)

    2024年02月11日
    浏览(44)
  • Git仓库的创建、常用命令、如何在 Git 中忽略文件提交以及 .gitignore 文件的作用和相关内容

    Git 仓库是用来存储版本控制信息的地方,为我们提供了快速便捷的代码管理方式。它可以包含文件、文件夹、历史记录、元数据等。在 Git 中,仓库通常分为两种:本地仓库和远程仓库。 如果你想分享你的代码库,并且希望团队中的其他成员可以跟踪你的进度和变化,你可以

    2024年02月02日
    浏览(46)
  • git回退指定版本号,并提交到远程仓库

    复制指定要回退的版本号 一、 git本地版本回退 git reset --hard commit_id (可用 git log -oneline 查看或git log查看) 二、 git 远程版本回退 git push origin HEAD --force #远程提交回退 三、或者本地回退版本,再提交到远程的方式 git reset --hard HEAD 先本地回退到指定版本 再强制 push 到远程,让远

    2024年02月12日
    浏览(42)
  • git根据commitid创建tag标签

    1.首先,创建一个新的标签。你可以使用以下命令创建一个轻量级标签(lightweight tag): 针对当前标签而言 ,也就是你所在的当前分支而言 2.如果你想创建一个带注释的标签 针对当前标签而言 ,也就是你所在的当前分支而言 上面两个(1,2)是根据当前分支所创建的,下面这

    2024年02月05日
    浏览(68)
  • 如何使用Git本地tag推送到远程命令

    在Git中,我们可以使用以下命令来创建本地tag: 其中,tag-name为你想要创建的tag名称。此外,如果你希望为tag添加一些描述信息,可以使用以下命令: 这样就可以创建一个带有描述信息的tag。在Git中,我们可以使用以下命令来查看已经创建的tag: 在创建好本地tag之后,我们

    2024年02月03日
    浏览(42)
  • 【Git】git tag 查看版本号 | 删除本地 | 删除远程仓库| 批量删除

    使用场景:比如我们在本地git tag了一个错误的版本号,但是还没有push,想直接删掉避免污染远程仓库 1、删除指令 要删除指定的Git标签(版本号),您可以使用以下命令: 2、本地删除 将 标签名称 替换为要删除的标签的名称。例如,要删除名为 “v1.0” 的标签,可以运行以

    2024年02月10日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包