我们是git的新手,我想在存储库的开头设置一个标记。 我们的生产代码与开始的存储库相同,但我们从那时起就进行了提交。 一开始的标签将允许我们将生产“回滚”到已知的稳定状态。

那么,如何向任意的旧提交添加标记呢?


当前回答

在其他人的答案的基础上,这里是一个一行程序的解决方案,设置标签日期为实际发生的时间,使用带注释的标签,不需要git签出:

tag="v0.1.3" commit="8f33a878" bash -c 'GIT_COMMITTER_DATE="$(git show --format=%aD $commit)" git tag -a $tag -m $tag $commit'
git push --tags origin master

其中tag被设置为所需的标记字符串,并提交到提交散列。

其他回答

好的,你可以简单地做:

git tag -a <tag> <commit-hash>

所以如果你想添加tag: 1.0.2来提交e50f795,只需简单地做:

git tag -a 1.0.2 e50f795

你还可以在结尾添加一条消息,使用-m,就像这样:

git tag -a 1.0.2 e50f795 -m "my message"

毕竟,你需要把它推到遥控器上,要做到这一点,只需做:

git push origin 1.0.2 

如果你有很多标签,你不想一个一个地提到它们,只需简单地这样做:

git push origin --tags

把所有标签放在一起…

此外,我还创建了下图中的步骤,以进一步阐明这些步骤:

你也可以在Hub或使用SourceTree等工具添加标签,以避免前面的步骤,在这种情况下,我登录到我的Bitbucket并从那里做:

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

在提交页面,在右边,找到没有标签的地方,然后点击+图标:

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

现在你可以看到标签已经成功创建:

要标记特定的提交,请先打印提交散列,以查看要向其添加标记的提交

git log --oneline

输出如下所示:

dee93fc update App.js
c691fa2 autherization to roles
559528a modify depart
6aa4ad4 edit project page

选择你想要添加标签的提交id, git checkout为提交id

git checkout 6aa4ad4

并为那个提交添加标签

git tag v1.0

并返回你的分支后,使这个标签

git checkout branchName

查看所有标签

git tag

这是一个老问题,答案已经给出了所有的工作,但也有一个新的选项可以考虑。

如果你使用SourceTree来管理你的git仓库,你可以右键单击任何提交并添加一个标签。再点击一次鼠标,你也可以将标签直接发送到原点的分支。

最简单的方法是:

git tag v1.0.0 f4ba1fc
git push origin --tags

f4ba1fc是要标记的提交的散列的开始,v1.0.0是要标记的版本。

在其他人的答案的基础上,这里是一个一行程序的解决方案,设置标签日期为实际发生的时间,使用带注释的标签,不需要git签出:

tag="v0.1.3" commit="8f33a878" bash -c 'GIT_COMMITTER_DATE="$(git show --format=%aD $commit)" git tag -a $tag -m $tag $commit'
git push --tags origin master

其中tag被设置为所需的标记字符串,并提交到提交散列。