我已经提交了git并随后推送。我想更改提交消息。如果我理解正确,这是不可取的,因为在我进行此类更改之前,可能有人从远程存储库中删除了内容。如果我知道没人拉过呢?

有办法做到这一点吗?


当前回答

只要说:

git commit --amend -m "New commit message"

然后

git push --force

其他回答

确保在正确的分支上进行更改

git checkout 

#确保您在正确的分支上进行更改只是为了确定:

git checkout branchname

Then

git commit --amend -m "new message"

然后按下

git push --force

只要说:

git commit --amend -m "New commit message"

然后

git push --force

我对Git有点陌生,但我只是想增加我的经验。

gitcommit--modify-m“新的正确消息”

这很奏效,但下一个是我的问题。在更改提交消息之前,我已经推送了提交。最后,当我试图推到远程时,git抛出了一个异常。所以我应该在更新远程分支之前再次下拉。

git pull-origin分支名称

git推送源分支名称

希望我的小经验对你有所帮助。谢谢

如果使用-S参数提交工作消息,则会发生以下事件:

 git checkout branch

 git commit --amend -m "Your new message"

在这一点上,不要忘记您添加了一个更改,而您的遥控器是不同的,这就是为什么您需要这样做的原因:

 git push --force

如果您使用VSCode,您将看到不同之处,使用--force参数,您将忽略git pull,并将更改后的消息推送到相同的提交。

需要注意的是,如果您对多个引用使用push-force,那么它们都将被修改。确保注意git repo的配置位置。幸运的是,通过指定要更新的单个分支,有一种方法可以稍微保护这个过程。阅读git手册页:

注意--力应用于所有被推动的ref,因此使用它具有push.default设置为匹配或多个push使用remote.*.push配置的目标可能会覆盖其他引用比当前分支(包括严格落后的本地引用它们的远程对应物)。要强制推送仅一个分支,请使用+在refspec前面推送(例如git推送原点+主推送强制推到主分支)。