如何在Git中标记较旧的提交?
我们是git的新手,我想在我们的仓库的开始处设置一个标签。 我们的生产代码和开始的仓库一样,但是从那时起我们已经提交了。 标签一开始就能让我们把生产“回滚”到一个已知的稳定状态。
那么如何添加一个标签到一个任意的,较旧的提交?
例:
git tag -a v1.2 9fceb02 -m "Message here"
9fceb02
是提交ID的开始部分。
然后你可以用git push --tags origin master
来推它们
你可以做git log
来显示当前分支中的所有提交ID。
Pro Git书中还有一个很好的标记章节。
只是守则
# Set the HEAD to the old commit that we want to tag git checkout 9fceb02 # temporarily set the date to the date of the HEAD commit, and add the tag GIT_COMMITTER_DATE="$(git show --format=%aD | head -1)" \ git tag -a v1.2 -m"v1.2" # set HEAD back to whatever you want it to be git checkout master
细节
@dkinzer的答案会创build标签,其date是当前date(当您运行git tag
命令时), 而不是提交的date。 Git帮助tag
有一个“On Backdating Tags”部分:
如果您从其他VCS导入了一些更改,并且希望为主要版本添加标签,则可以指定要在标签对象内部embedded的date; 标签对象中的这种数据会影响,例如,gitweb界面中标签的sorting。
要设置将来标记对象中使用的date,请设置环境variables
GIT_COMMITTER_DATE
(请参阅后GIT_COMMITTER_DATE
可能值的讨论;最常见的forms是“YYYY-MM-DD HH:MM”)。例如:
$ GIT_COMMITTER_DATE="2006-10-02 10:31" git tag -s v1.0.1
“如何在Git中进行标记 ”页面告诉我们,我们可以通过以下方式提取HEAD提交的时间:
git show --format=%aD | head -1 #=> Wed, 12 Feb 2014 12:36:47 -0700
我们可以通过以下方式提取特定提交的date:
GIT_COMMITTER_DATE="$(git show 9fceb02 --format=%aD | head -1)" \ git tag -a v1.2 9fceb02 -m "v1.2"
但是,不是重复提交两次,而是将HEAD更改为该提交并在两个命令中隐式使用它似乎更容易:
git checkout 9fceb02 GIT_COMMITTER_DATE="$(git show --format=%aD | head -1)" git tag -a v1.2 -m "v1.2"
最简单的方法是
git tag v1.0.0 f4ba1fc
f4ba1fc
是你想要标记的提交的散列的开始, v1.0.0
是你想要标记的版本。
使用命令:
git tag v1.0 ec32d32
其中v1.0是标签名称,ec32d32是要标记的提交
完成后,您可以按以下方式推送标签:
git push origin --tags
参考:
Git(版本控制):如何在GitHub中标记特定的前一个提交点?
这是一个古老的问题,答案已经完成,但也有一个新的select可以考虑。
如果你使用SourceTree来pipe理你的git仓库,你可以右击任何提交并添加一个标签。 用另一个鼠标点击,你也可以直接发送标签到原产地的分支。
好的 ,你可以简单地做:
git tag -a <tag> <commit-hash>
所以,如果你想添加标签: 1.0.2提交8ecdb02
,只是简单地做:
git tag -a 1.0.2 e50f795
你也可以在最后添加一个消息,使用-m
,如下所示:
git tag -a 1.0.2 e50f795 -m "my message"
毕竟,你需要把它推到remote
,做到这一点,只需:
git push origin 1.0.2
如果你有很多你不想一一提及的标签,只要简单地做:
git push origin --tags
将所有标签推到一起
另外,我在下面的图片中创build了这些步骤,以便更多地了解这些步骤:
您也可以在Hub中使用dd标记或使用SourceTree之类的工具来避免之前的步骤,在这种情况下,我login到了Bitbucket并从中执行:
- 去你的分支,find你想要添加标签的提交,然后点击它:
- 在提交页面的右侧,find
No tags
,然后单击+
图标:
- 在标签名称框中,添加您的标签:
- 现在您可以看到标签已经成功创build: