git:修复错误的推送提交消息的“正确方法”是什么

时间:2015-06-20 18:38:18

标签: git git-push git-commit

我写了一条不正确的提交消息,我把它推到了遥控器上。已经有很多问题已经解决了这个问题:

只是一对。但它们似乎都以git push --force终止,另外警告为什么这是一个坏主意 - 它编辑历史记录,这意味着使用存储库的每个人在尝试拉动时都会受到影响。他们似乎并没有说“正确”的事情是什么。

那么处理这种情况的建议或“正确”方法是什么?我以为我可以使用git commit --allow-empty添加额外的消息,但据说有“rarely a good reason to do this”。 --allow-empty确实是解决问题的正确方法吗?如果没有,正确的方式?

注意:做“正确的方式”可能涉及“承认我搞砸了”。作为我正在寻找的示例,git tag手册页有一个discussion on retagging推送标签。它清楚地讨论了重新标记错误标记的提交的方法,给出了推荐的行动方案和--force - ish做事方式。

1 个答案:

答案 0 :(得分:6)

您可以做的一件事是在提交中添加note,例如git notes add -m "Here is my note" head~1。然后,这将显示在git log中,而不会实际更改提交。另一种方法是在提交中添加annotated tag,例如git tag -a tag-summary -m "Here are the tag details" head~1。我更喜欢标记方法,因为标签显示在大多数工具的日志视图中,而注释则不显示(尽管它们显示在git log中)。