我有一个带有标签的提交,但是当我修改它的任何更改时,它会丢失标签。 我对 git 并不陌生,但还是不明白它是如何工作的
我已经尝试过:
git commit --amend --no-edit
git commit --amend --no-post-rewrite
git commit --reuse-message=HEAD -C HEAD
提交不能被重写。您只能进行新的提交并替换旧的。请参阅 我对什么是 Git 提交 ID? 的回答以了解原因。
如果你有这个...
A - B - C [HEAD][tag]
提交修改后,你就得到了这个。
A - B - C [tag]
\
C1 [HEAD]
具有自己的提交 ID 的全新提交。 Git 不会为你移动标签。
您可以编写一个小脚本来检查当前提交是否有标签,并将标签移动到新的提交。然后,您可以将其命名为
git-commit-amend
(只要它是 git-something
),将其放入您的 PATH 中,它将作为 git commit-amend
使用。