我已经提交了git并随后推送。我想更改提交消息。如果我理解正确,这是不可取的,因为在我进行此类更改之前,可能有人从远程存储库中删除了内容。如果我知道没人拉过呢?
有办法做到这一点吗?
我已经提交了git并随后推送。我想更改提交消息。如果我理解正确,这是不可取的,因为在我进行此类更改之前,可能有人从远程存储库中删除了内容。如果我知道没人拉过呢?
有办法做到这一点吗?
当前回答
git commit --amend
然后在当前窗口中编辑和更改消息。在那之后
git push --force-with-lease
其他回答
命令1。
git commit --amend -m "New and correct message"
然后
命令2。
git push origin --force
这对我来说很好,
git签出原点/分支名称
如果您已经在分支中,那么最好进行拉入或重入
git pull
or
git -c core.quotepath=false fetch origin --progress --prune
稍后您可以简单地使用
git commit --amend -m "Your message here"
或者如果您想打开文本编辑器,请使用
git commit --amend
如果你有很多评论,我更喜欢使用文本编辑器。您可以使用命令设置首选文本编辑器
git config --global core.editor your_preffered_editor_here
无论如何,当您更改完提交消息后,保存并退出
然后运行
git push --force
你已经完成了
要编辑除最近提交以外的提交,请执行以下操作:
步骤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来更新远程。
另一个选项是创建一个额外的“勘误表提交”(和推送),它引用包含错误的提交对象——新的勘误表提交也提供了更正。勘误表提交是一种没有实质性代码更改的提交,但有一条重要的提交消息——例如,在自述文件中添加一个空格字符,并使用重要的提交信息提交更改,或者使用git选项——allow empty。它肯定比重定基更容易、更安全,它不会修改真实的历史记录,并且保持了分支树的干净(如果您正在更正最近的提交,那么使用modify也是一个不错的选择,但对于较旧的提交,错误提交可能是一个不错选择)。这种情况很少发生,因此简单地记录错误就足够了。将来,如果您需要在git日志中搜索功能关键字,原始(错误)提交可能不会出现,因为在原始提交中使用了错误的关键字(原始拼写错误)——但是,该关键字将出现在勘误表提交中,然后将您指向具有拼写错误的原始提交。下面是一个示例:
$ git log commit 0c28141c68adae276840f17ccd4766542c33cf1d Author: First Last Date: Wed Aug 8 15:55:52 2018 -0600 Errata commit: This commit has no substantive code change. This commit is provided only to document a correction to a previous commit message. This pertains to commit object e083a7abd8deb5776cb304fa13731a4182a24be1 Original incorrect commit message: Changed background color to red Correction (*change highlighted*): Changed background color to *blue* commit 032d0ff0601bff79bdef3c6f0a02ebfa061c4ad4 Author: First Last Date: Wed Aug 8 15:43:16 2018 -0600 Some interim commit message commit e083a7abd8deb5776cb304fa13731a4182a24be1 Author: First Last Date: Wed Aug 8 13:31:32 2018 -0600 Changed background color to red
git commit --amend
然后在当前窗口中编辑和更改消息。在那之后
git push --force-with-lease