TortoiseGit:Rebase与冲突

时间:2017-08-09 11:37:45

标签: git tortoisegit

我觉得我做错了但我不知道在哪里。我有一个工作分支和一个主分支。工作分支有一些不在主分支上的提交。现在我有一个我承诺掌握的关键错误修正。我也希望在工作分支中进行此提交,因此我使用rebase。

我在TortoiseGit中打开rebase窗口,它显示了这一个提交。点击“Start Rebase”后,它会通知我发生了几次冲突。我修复了冲突并在rebase窗口中按“提交”。

现在提交显示在提交日志中。好。但是当我想把它推到服务器上时,我被告知HEAD是分离的。我用git checkout -b temp解决了这个问题并推送了这个临时分支。

如果我现在从原点获取并再次打开rebase窗口,我刚刚推送的提交再次显示为rebase。我认为它不应该出现在那里因为它已经重新定位了。

我还检查了在没有冲突的情况下进行提交,它在rebase窗口中没有再次显示。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

使用命令行界面时:修复rebase冲突后,你必须提交,然后告诉git"继续当前rebase的剩余动作" :

git rebase --continue

我不知道TortoiseGit做了什么或者做了什么,看看你是否有一些行为看起来像是"继续改变"或者"恢复rebase&#34 ;或者......

关于变基的另一件事:git无法跟踪已经重新定位的提交,
相反,它会查看每个提交引入的修补程序,并扫描目标分支以查看提交是否已应用相同的修补程序。

如果发生冲突,通常会在生成的修补程序中修改某些内容,因此重新引用不会检测到实际应用了初始提交,并且该提交将重新出现。

避免此问题的一种方法是 master合并到branch,而不是重新定位。