# 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"
# push to origin
git push origin --tags
# set HEAD back to whatever you want it to be
git checkout master
8条答案
按热度按时间k97glaaz1#
示例:
其中
9fceb02
是提交ID的开始部分。然后可以使用
git push origin v1.2
推送标记。你可以执行
git log
来显示当前分支中的所有提交id。在Pro Git的书中也有一个关于tagging的很好的章节。
**警告:**这将创建带有 * 当前日期 * 的标签(例如,该值将显示在GitHub发布页面上)。如果您希望标签的日期与提交日期相同,请查看another answer。
vxqlmq5t2#
只有代码
详细信息
@dkinzer的回答会创建日期为当前日期(当你运行
git tag
命令时)的标签,而不是提交日期。tag
的Git帮助有一节“关于回溯标签”,内容如下:GIT_COMMITTER_DATE
(参见后面对可能值的讨论;最常用格式是“YYYY-MM-DD HH:MM”)。*页面 “如何在Git中添加标签” 向我们展示了我们可以通过以下方式提取HEAD提交的时间:
我们可以通过以下方式提取特定提交的日期:
但是,与其重复提交两次,不如将HEAD更改为该提交,并在两个命令中隐式使用它:
8e2ybdfx3#
最简单的方法是:
其中
f4ba1fc
是要标记的提交的哈希的开始,v1.0.0
是要标记的版本。nmpmafwu4#
好的,您只需执行以下操作:
所以如果你想添加**tag:**1.0.2来提交
e50f795
,只需简单地执行以下操作:另外,您还可以使用
-m
在结尾处添加一条消息,内容如下:毕竟,您需要将其推送到
remote
,为此,只需执行以下操作:如果您有许多不想一一提及的标签,只需简单地执行以下操作:
将所有标签推到一起。
此外,我还创建了下图中的步骤,以更清楚地说明这些步骤:
您还可以在Hub中添加标记,或者使用SourceTree等工具添加标记,为了避免前面的步骤,在本例中,我登录到我的Bitbucket,并从那里进行添加:
1.转到您的分支,找到您想要添加标记的commit,然后点击它:
1.在提交页面的右侧,找到显示
No tags
的位置,然后单击+
图标:1.在标记名称框中,添加标记:
1.现在您可以看到标记已成功创建:
指令集
bd1hkmkf5#
这是一个老问题,答案已经给出了所有的工作,但也有一个新的选择,可以考虑.
如果你使用SourceTree来管理git仓库,你可以右键点击任何提交并添加一个标记。再鼠标点击一次,你也可以将标记直接发送到origin上的分支。
hfwmuf9z6#
基于其他人的答案,这里有一个简单的解决方案,它将标记日期设置为实际发生的时间,使用带注解的标记,并且不需要
git checkout
:其中
tag
被设置为期望的标签串,并且commit
被设置为提交散列。vm0i2vca7#
@Phrogz的answer很棒,但在Windows上不起作用。下面是如何使用Powershell标记一个旧提交的原始日期:
4dc9hkyq8#
要为特定提交创建标记,请首先打印提交ID,以查看要向其添加标记的提交
输出将如下所示
选择要添加标记的提交ID并为提交ID git checkout
并为提交添加标记
然后回到你的分支做好这个标记后
查看所有标记