Git:如何在rebase期间修复提交

时间:2013-01-12 15:41:57

标签: git rebase

我遇到了以下问题:

在git rebase中,一个自动解析的提交有一个错误,即由于自动解析,在头文件中第二次引入了一个函数声明,编译失败。

我的问题是:是否有可能回到自动解决的提交,手动解决它,然后继续使用rebase,假设我仍然在rebase过程中?

2 个答案:

答案 0 :(得分:6)

您应首先完成原始rebase,以便与存储库处于已知状态。然后编辑使用交互式rebase引入错误的提交非常容易。查看要修复的提交的sha1,然后执行

git rebase -i <sha1>^

编辑器将打开包含从HEAD到您要修复的提交的提交。从列表中找到提交(它应该是第一个),替换单词&#34; pick&#34;使用&#34;编辑&#34;,保存并退出编辑器。

现在您可以修复错误,然后执行

git commit -a --amend
git rebase --continue

那就是它!

答案 1 :(得分:0)

尽管重新库内的重新库不起作用,但可以git commit --amend进行最后一次提交的修改。
如果问题是由于刚好在当前基础被重新提交之前的提交(即最后一次提交)引起的,则可以对其进行修改而不会对重新设置过程产生任何副作用。

所以当我遇到这种情况时,我做了以下事情:

  1. 取消当前正在根据其进行的手动修改:

    $ git reset HEAD <files being rebased>
    
  2. 将我的补丁保存到最后一次导致问题的提交上:

    $ git add <files with compilation fix>
    
  3. 将编译修补程序添加到上一次提交的修改中:

    $ git commit --amend
    
  4. 返回当前要重新设置的手动修改:

    $ git add <files being rebased>
    

希望这会有所帮助。