【发布时间】:2014-10-10 10:27:11
【问题描述】:
我创建了一个标签,忘记签名,然后将标签推送到 GitHub。是否可以追溯性地签署该标签,还是必须创建一个新标签?
我已经阅读了git tag 的手册页并搜索了一下,但没有找到任何线索表明可以向现有标签添加签名。
【问题讨论】:
我创建了一个标签,忘记签名,然后将标签推送到 GitHub。是否可以追溯性地签署该标签,还是必须创建一个新标签?
我已经阅读了git tag 的手册页并搜索了一下,但没有找到任何线索表明可以向现有标签添加签名。
【问题讨论】:
我知道这是一个老问题,但与VonC 所说的不同。我创建了一个单行 bash 脚本,它可以遍历存储库中的所有标签并自动对其进行签名。您所要做的就是接受或更改旧标签中设置的消息。这是我想出的命令
git for-each-ref refs/tags | awk '{print $3}' | cut -c11- | xargs -I % sh -c 'git tag % % -f -s'
【讨论】:
不,你需要::
replace it with a tag using the same name:
git tag <tag name> <tag name> -f -s
但首先设置提交者日期,以免更改日期
set GIT_COMMITTER_DATE="$(git log -1 --format=%aD <tag_name>)"
由于mrts 添加了the comments,因为标签已经被推送:
您还需要强制推送带有
git push origin <tag_name> -f的更新标签
【讨论】:
git push origin <tag_name> -f强制推送更新的标签。