2017-07-24 26 views
0

由于在添加解决了冲突的文件后,出现“没有更改 - 您忘记使用'git add'?”,所以我正面临rebase问题?一旦我尝试继续rebase就会出现。有谁有线索吗?在git rebase期间未检测到更改

谢谢。

回答

1

当您通过选择文件的“他们的”版本解决冲突时(或者如果您手动编辑文件并应用更改并且文件与“他们的”版本相同),就会发生这种情况。

如果在解决所有冲突后,没有对工作树进行更改,则git commit没有任何关系。 git rebase --continue想运行等效的git commit来应用它正在处理的提交,但默认情况下,git commit不会创建空提交。

在这种情况下,您应该运行git rebase --skip而不是git rebase --continue

rebase会跳过它正在处理的提交,因为在解决冲突的解决方案中,它不会在代码中引入任何更改。

1

如果Git告诉你,那么你没有实际的改变提交。当冲突解决结束时,这可能发生在重定位情况下,导致您目前正在重新绑定的提交没有任何更改。造成这种情况的一个常见原因可能是这些更改已经包含在基本提交中,从而使重新提交的提交变得冗余。

然后Git会警告你它没有任何提交/ rebase。在这种情况下,你可以决定提交一个空的提交(git commit --allow-empty),或者你可以简单地跳过这个当前提交(因为它不包含任何内容)。然后,请执行git rebase --skip

0

明白了; @ poke的“git commit --allow-empty”使我朝着正确的方向前进:在推送到远程主服务器之前,我使用了“commit --amend”,使其对团队的其他成员“透明”,而我需要一个全新的提交避免冲突。