如何在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,请设置环境variablesGIT_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并从中执行:

  1. 去你的分支,find你想要添加标签的提交,然后点击它:

在bitbucket中找到你的提交

  1. 提交页面的右侧,findNo tags ,然后单击+图标:

找到它说没有标签

  1. 在标签名称框中,添加您的标签:

添加标签名称

  1. 现在您可以看到标签已经成功创build:

在这里输入图像说明