繁体   English   中英

Git Rebase 期间的 Git 提交 - 到底发生了什么?

[英]Git Commit during Git Rebase - what really happens?

我正在寻找一个很好的描述,如果一个人在 rebase 期间提交会发生什么,以及如何以简单的方式“恢复”。

让我们考虑一个场景,其中一个大的提交被重新定位。 在变基期间出现冲突并且用户开始合并更改。 现在,想象一下您几乎完成的场景,但您没有调用git rebase --continue - 无论出于何种原因(无论是长周末还是其他原因)。 下周你刚刚恢复工作,仍然在 rebase 期间。 最后,您调用git commit --amend将更改附加到最后一次提交,然后......它们最终出现在您重新设置的提交中。

自然地,您始终可以检出您开始变基的提交并“破解您的方式” - 例如,通过尝试从您的修改中复制所有文件,但这可能会删除同时引入的更改。

有没有干净,好的方法来解决这个问题? 这是我应该小心的一种特殊状态,我永远不想最终陷入这种状态,但它仍然偶尔会发生 - 我最终花了一整天的时间试图把事情弄直。

我真的很感激所有的帮助和建议。 谢谢!

针对这种情况,有两种建议的解决方案。

  • 第一个解决方案是将最终结果重新设置为原始基础 commit 这将需要您再次解决类似的合并冲突,但是当您完成后,您的提交应该会回到正轨。

  • 对我有用的替代解决方案是分支与您修改的提交相同的点(它带有 SHA,应该用作结帐基础)。 然后创建一个新分支并调用git merge --no-ff --no-commit --strategy=theirs other_branch ,其中 *other_branch* 是不幸提交的分支。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM