推送后更改git commit消息(假设没有人从远程拉出)

我做了一个git commit和随后的推送。我想更改提交消息。如果我理解正确,那么这是不可取的,因为有人在进行此类更改之前可能已经从远程存储库中拉出了。如果我知道没人拉怎么办?

有没有办法做到这一点?


摇曳的蔷薇
浏览 504回答 3
3回答

千巷猫影

改变历史如果这是最新的提交,则可以执行以下操作:git commit --amend这将使编辑器显示最后的提交消息,并允许您编辑消息。(-m如果您要清除旧消息并使用新消息,则可以使用。)推动然后,当您按下按钮时,请执行以下操作:git push --force-with-lease <repository> <branch>或者,您可以使用“ +”:git push <repository> +<branch>或者您可以使用--force:git push --force <repository> <branch>使用这些命令时要小心。如果其他人将更改推送到同一分支,则可能要避免破坏这些更改。该--force-with-lease选项是最安全的,因为如果有任何上游更改,它将中止(如果您未明确指定分支,则Git将使用默认的推送设置。如果您的默认推送设置为“匹配”,则您可能会同时破坏多个分支上的更改。之后拉/取现在,任何已经拉出的人都会收到一条错误消息,并且他们需要通过执行以下操作来更新(假设他们自己没有进行任何更改):git fetch origingit reset --hard origin/master # Loses local commits使用时要小心reset --hard。如果分支有更改,这些更改将被销毁。有关修改历史记录的注释销毁的数据实际上只是旧的提交消息,但--force不知道该消息,也很乐意删除其他数据。因此可以想象--force为“我想销毁数据,并且我确定要销毁哪些数据”。但是,当提交已破坏的数据时,通常可以从reflog中恢复旧的提交-数据实际上是孤立的而不是被破坏的(尽管孤立的提交会定期删除)。如果您不认为自己要破坏数据,请远离--force…… 可能会发生坏事。这就是为什么--force-with-lease更安全的原因。

慕的地8271018

说啊 :git commit --amend -m "New commit message"接着git push --force

潇潇雨雨

要编辑最近提交以外的提交:步骤1:git rebase -i HEAD~n对n受影响的最后一次提交进行交互式变基。(即,如果您想更改3次提交的提交消息,请执行git rebase -i HEAD~3)git将弹出一个编辑器来处理这些提交,请注意以下命令:#&nbsp; r, reword = use commit, but edit the commit message,这正是我们所需要的。第二步:更改pick到r了要更新味精这些提交。请勿在此处更改提交消息,它将被忽略。您将在下一步中进行操作。保存并关闭编辑器。第三步:Git将为您r之前输入的每个修订版本弹出另一个编辑器。根据需要更新提交消息,然后保存并关闭编辑器。步骤4:在更新所有提交消息之后。您可能要git push -f更新遥控器。
打开App,查看更多内容
随时随地看视频慕课网APP