git rebase --onto导致冲突 - 为什么?

时间:2011-02-08 11:47:05

标签: git-svn conflict git-rebase

我正在尝试

git rebase --onto master myremote/master~21 myremote/master

从我的远程存储库添加最新的21次提交。

git告诉我的是,存在冲突 - 但这怎么可能?

根据我的理解,它只是接受了21次提交并将其应用于我的主人之上。怎么会有冲突?

感谢您的帮助!

我正在做那个顺便说一句,因为我搞砸了我的git-svn存储库(远程),并且有21个提交我无法承诺颠覆。所以我正在尝试使用一个新的git-svn克隆,我正在添加这21个提交。

1 个答案:

答案 0 :(得分:0)

如果出现冲突:

  • master已提交不在myremote/master
  • 中的提交
  • 这些提交包含公共文件/更改,其中一个提交最后21个myremote/master

如果新鲜的git-svn clone与先前的git-svn repo有不同的SHA1,则没有紧密的共同祖先,冲突的可能性要高得多。
有关rebase期间冲突的说明,请参阅“How to identify conflicting commits by hash during git rebase?”。


将本地主人重置为myremote / master的一种方法是:

git checkout -b tmp myremote/master  # local tmp branch from myremote/master HEAD.
git merge -s ours master             # ignore completely master content
git checkout master
git merge tmp                        # fast-forward to tmp HEAD

如果您在获取master之前未对本地myremote/master进行任何更改,则此操作应该有效。