我正在寻找一个关于rebase时提交所发生的情况以及如何用简单的方法“撤销”的好描述。
让我们考虑这样一种情况,一个大型提交正在被rebase。在rebase期间出现了冲突,用户开始合并更改。 现在,想象一下这样一种情况,你已经快做完了,但是由于某种原因(比如长周末等),你没有调用git rebase --continue。接下来的一周你继续工作,仍然处于rebase状态。最后,你调用git commit --amend将更改附加到上一个提交中,并且……它们出现在你正在rebase的提交中。
当然,你总是可以检出你开始rebase的提交并“hack your way through”——例如尝试从你的修改中复制所有文件,但是这可能会丢失在此期间引入的变更。
有没有清晰而好的方法来解决这个问题?这是一个特定的状态,我应该小心避免,但是偶尔还是会发生-我最终花费了整整一天时间来搞清楚事情。
我真的很感谢所有的帮助和建议。谢谢!
git rebase --continue
,那么你最终会得到两个提交:原始基础提交和重新设置后的更改。它们都有相同的提交信息(就像原始基础提交一样),但可以很容易地使用git --amend
修复此问题。 - KL-7