Magit-撤消上一次提交-历史操作


12

这个StackOverflow问题具有撤消最后一次提交的最佳解决方案/方法。

我是在几周前开始使用Magit的,在浏览了所有文档之后,我仍然没有确定/最佳的方法来撤消错误提交的更改。

例如:
对于撤消和重做,我们可以使用上一次提交:

$ git commit -m "Something terribly misguided"
$ git reset HEAD~
<< edit files as necessary >>
$ git add ... 
$ git commit -c ORIG_HEAD # To keep the same commit message

使用Magit重现此过程的最佳工作流程应该是什么?

Answers:


17

您可以使用magit-reset(默认绑定为x)。此时的提交将用作提示的默认值,但是您可以输入所需的任何修订值(此处为“ HEAD〜”)。

重置命令在手册的“重置”部分中进行了描述:https : //magit.vc/manual/magit/Resetting.html

要重新使用提交消息,可以=C在提交弹出窗口中使用该选项。不幸的是,该提示当前没有提供任何完成值(我认为它至少应该提供 ORIG_HEAD),但是在重置之前,您可以将当前提交的哈希值放入kill环中(例如,C-w在“ Head:”行上使用状态缓冲区的值),然后在重置后将其作为=C选项的值。


一些其他评论:

  • 代替使用=C,您可能会发现更方便的做法是开始commit(cc),然后使用git-commit-prev-messageM-p)循环浏览先前的消息。

  • 如果您仅修改最后的提交,则可以使用magit-commit-amendca)或magit-commit-extendce)对之前的提交进行分段更改。(后者重用了提交消息,绕过了COMMIT_EDITMSG缓冲区。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.