Tom*_*z W 9 git commit rebase git-rebase git-commit
我正在寻找一个很好的描述,如果一个人在rebase期间提交以及如何以一种简单的方式"恢复"它会发生什么.
让我们考虑一个场景,其中大型提交被重新定位.在rebase期间,出现冲突并且用户开始合并更改.现在,想象一下你几乎已经完成的场景,但你没有出于任何原因(无论是长周末等)都没有调用git rebase --continue.接下来的一周,你刚刚恢复工作,在退缩期间.最后,你调用git commit --amend将更改附加到最后一次提交,并且...它们最终会在你重新引入的提交中.
当然,你总是可以检查你开始改变的提交和"hack your way thruogh" - 例如,试图复制修改中的所有文件,但这可能会丢失同时引入的更改.
有没有一个干净,好的方法来解决这个问题?这是一个我应该小心的特殊状态,我永远不想最终进入它,但它偶尔也会发生 - 我最终花了一整天时间试图把事情弄清楚.
我非常感谢所有的帮助和建议.谢谢!
针对这种情况,有两种建议的解决方案。
第一个解决方案是将最终结果重新设置为原始基础 commit。这将需要您再次解决类似的合并冲突,但是当您完成后,您的提交应该会回到正轨。
对我有用的替代解决方案是分支与您修改的提交相同的点(它带有 SHA,应该用作结帐基础)。然后创建一个新分支并调用git merge --no-ff --no-commit --strategy=theirs other_branch
,其中 *other_branch* 是不幸提交的分支。