我做了一个git rebase master,它涉及到三个文件中的一些手动合并。在其中一个文件中,我遗漏了一个尾随的换行符,导致文件末尾出现以下内容:
<<<<<<< HEAD
=======
>>>>>>> ... commit message这自然会导致PHP错误。我可以很容易地修复这个文件,但我不想添加一个错误的“修复草率的rebase”提交。
如何将此更改修改为rebase?或者,重复rebase,这样我就可以捕捉到它了?
发布于 2012-02-14 09:44:22
这个问题基本上可以归结为“如何修改不是最新的提交?”假设您没有将提交推送到任何地方,并进一步假设历史从该提交开始是线性的,这非常简单。
$SHA,但您可以使用任何您想要标识此提交的方法。git commit --fixup $SHA.git rebase -i --autosquash $SHA^这将为您提供一个带有提交列表的编辑器。第一次提交应该是$SHA,第二次应该是您的编辑,接下来应该是对HEAD的其余提交。保存并关闭此编辑器。Git现在将执行交互式的rebase,将您的更改应用于您想要修改的提交。
有一个替代的解决方案,你可以使用,这是一个更多的手动,但工作没有交互式的rebase。基本上,您可以签出您想要直接修改的提交(生成一个分离的头),进行更改,运行git commit --amend,然后将分支重新建立在新修改的提交之上。你可能实际上更喜欢这种风格,因为它对你正在做的事情更明确一些,但是交互式rebase版本的好处是你可以用交互式rebase做更多的事情。例如,您可以对提交进行重新排序、将多个提交压缩在一起、删除提交、对提交进行重写等等。您还可以使用git commit的--fixup和--squash标志来记录您希望执行的这些操作,而无需立即实际执行rebase,然后您可以在完成后返回并执行一次大型交互式rebase。
发布于 2012-02-14 09:37:22
您可以进行更改,然后执行git commit --amend。
https://stackoverflow.com/questions/9270537
复制相似问题