我已经提交了git并随后推送。我想更改提交消息。如果我理解正确,这是不可取的,因为在我进行此类更改之前,可能有人从远程存储库中删除了内容。如果我知道没人拉过呢?
有办法做到这一点吗?
我已经提交了git并随后推送。我想更改提交消息。如果我理解正确,这是不可取的,因为在我进行此类更改之前,可能有人从远程存储库中删除了内容。如果我知道没人拉过呢?
有办法做到这一点吗?
当前回答
git commit --amend
然后在当前窗口中编辑和更改消息。在那之后
git push --force-with-lease
其他回答
如果您使用的是位桶管道,则有关相同问题的附加信息
编辑您的邮件
git commit --amend
推到服务器
git push --force <repository> <branch>
然后在管道上的push命令中添加--force
git ftp push --force
这将删除您以前的提交并推送当前提交。
在第一次推动后移除--力
我在bitbucket管道上试过了,效果很好
要编辑除最近提交以外的提交,请执行以下操作:
步骤1:git rebase-i HEAD~n为受影响的最后n次提交执行交互式rebase。(即,如果您想将提交消息3改回提交,请执行gitrebase-i HEAD~3)
git将弹出一个编辑器来处理这些提交,请注意以下命令:
# r, reword = use commit, but edit the commit message
这正是我们需要的!
步骤2:将要更新消息的提交的pick更改为r。不要在此处更改提交消息,它将被忽略。下一步你会这么做。保存并关闭编辑器。
请注意,如果您编辑了重新命名的“计划”,但它没有开始允许您重命名文件的过程,请运行:
git rebase --continue
如果要更改用于交互式会话的文本编辑器(例如,从默认vi更改为nano),请运行:
GIT_EDITOR=nano git rebase -i HEAD~n
第三步:Git将为您之前的每个修订弹出另一个编辑器。根据需要更新提交消息,然后保存并关闭编辑器。
步骤4:更新所有提交消息后。您可能需要执行gitpush-f来更新远程。
只需使用这两个命令即可更改上次推送的提交消息
-$gitcommit--modify-m“新提交消息。”-$git push—使用租约强制
如果使用-S参数提交工作消息,则会发生以下事件:
git checkout branch
git commit --amend -m "Your new message"
在这一点上,不要忘记您添加了一个更改,而您的遥控器是不同的,这就是为什么您需要这样做的原因:
git push --force
如果您使用VSCode,您将看到不同之处,使用--force参数,您将忽略git pull,并将更改后的消息推送到相同的提交。
如果您想修改一个较旧的提交,而不是最后一个提交,则需要使用rebase命令,如Github帮助页面“修改较旧或多个提交消息的消息”部分中所述