我们是git的新手,我想在存储库的开头设置一个标签。我们的生产代码与开始的存储库相同,但是从那时起我们就进行了提交。开头的标签将使我们能够将生产“回滚”到已知的稳定状态。
那么如何将标签添加到任意的较早的提交中呢?
我们是git的新手,我想在存储库的开头设置一个标签。我们的生产代码与开始的存储库相同,但是从那时起我们就进行了提交。开头的标签将使我们能够将生产“回滚”到已知的稳定状态。
那么如何将标签添加到任意的较早的提交中呢?
Answers:
例:
git tag -a v1.2 9fceb02 -m "Message here"
9fceb02
提交ID的开始部分在哪里。
然后,您可以使用推送标签git push origin v1.2
。
您可以git log
显示当前分支中的所有提交ID。
在Pro Git书中也有关于标记的很好的章节。
警告:这会创建带有当前日期的标签(例如,该值将显示在GitHub发布页面上)。如果您希望标签带有提交日期,请查看其他答案。
-a
和-m "Message here"
部分:git tag v1.2 9fceb02
-a
和之间有什么区别-m
。手册页似乎在-a
暗示何时-m
使用。
git push --tags origin master
会将本地分支上的所有标签推送到远程。最好git push origin <tag_name>
只推送创建的标签。请参阅:stackoverflow.com/a/5195913/452708、git-scm.com/book/en/v2/Git-Basics-Tagging
# 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的答案将创建标记,标记的日期为当前日期(运行git tag
命令时),而不是提交日期。Git帮助tag
包含“回溯标签”部分,内容为:
如果您已从另一个VCS导入了一些更改,并希望为您的主要版本添加标签,则能够指定嵌入标签对象内部的日期会很有用。标记对象中的此类数据会影响gitweb界面中标记的顺序。
要设置将来的标记对象中使用的日期,请设置环境变量
GIT_COMMITTER_DATE
(请参阅后面的可能值讨论;最常见的形式是“ 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
我们可以通过以下方式提取特定提交的日期:
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 ec32d32
其中v1.0是标记名称,ec32d32是要标记的提交
完成后,您可以通过以下方式推送标签:
git push origin --tags
参考:
好的,您可以简单地执行以下操作:
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"
毕竟,您只需将其推到remote
即可,只需执行以下操作:
git push origin 1.0.2
如果您有很多标签,不想一一提及,只需执行以下操作:
git push origin --tags
将所有标签推到一起...
您也可以在Hub或在诸如SourceTree之类的工具中使用dd标签,以避免前面的步骤,我登录到Bitbucket在这种情况下并从那里进行操作:
No tags
然后单击+
图标:这是一个古老的问题,答案已经可以解决所有问题,但是还有一个可以考虑的新选项。
如果您正在使用SourceTree管理git存储库,则可以右键单击任何提交并向其中添加标签。再次单击鼠标,您也可以将标签直接发送到原点的分支。