繁体   English   中英

如何编辑推送的 git commit 的提交消息

[英]How to edit commit message of a pushed git commit

我想更改其消息的提交已被推送,并且处于 5 次提交的中间 有没有办法编辑提交消息? 编辑后发生了什么,当有人已经取消提交时?

由于这是用 tortoisegit 标记的,我将向您展示如何在 TortoiseGit 中实现这一目标

  1. 转到提交日志
  2. 选择提交下方的提交进行编辑,然后选择“Rebase ... on this” 在此处输入图片说明
  3. 变基对话框打开。 首先选择“强制变基”,因为从 Git 的角度来看并不真正需要变基在此处输入图片说明
  4. 然后选择提交并选择编辑在此处输入图片说明
  5. 按下面的“开始变基”按钮
  6. 现在您可以编辑您的消息,然后按“修改” 在此处输入图片说明
  7. 在这之后推它。 如果提交已经被推送,那么你需要强制推送。 为此,请检查推送对话框中的“已知更改”。

更新:更新此答案以从日志开始。 这并不容易,但它更好,不会导致冲突

通常不建议更改已经公开可用的提交。 正如您自己意识到的那样,当其他人已经在其上工作时编辑这样的提交可能会导致其他人试图发布他们的工作时发生冲突。

话虽如此, git rebase -i HEAD~5将允许您以交互方式重新设置最近的五次提交。 它将在您的编辑器中打开一个 ToDo 文件,允许您根据需要重写历史记录。 其中,将有一个reword选项,允许您更改特定提交的提交消息。 您只需要更改上述提交前的pick即可reword并保存文件,git 会提示您输入新的提交消息。

但是请注意,您将创建一个全新的提交,如果要发布它,则必须使用--force选项进行推送。

不改变已经推送的内容被认为是最佳实践。

但是,您可以使用git rebase -i编辑任何提交,并为要更改的提交选择r (reword)

如果您之前推送过,则需要使用push -f (强制推送)推送它。

您将从该提交更改整个树并转发,因此所有其他克隆存储库的人都需要执行git pull以使其正确。 如果他们根据当前树进行了更改,那么您将很难为他们服务,因此最好的办法是让每个人都推送他们的更改,“冻结”存储库,然后在推送后让他们再次拉取。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM