如何解决与git-svn的冲突?

在做git svn rebase时,解决冲突的最好方法是什么,你所在的git分支变成“(no-branch)”?

您可以使用git mergetool以通常的方式查看和编辑冲突。 一旦你确定冲突得到解决,就要做git rebase --continue – 继续继续rebase,或者如果你不想包含那个版本,那么git rebase --skip

在做git svn rebase ,如果你有合并的冲突,这里有一些事情要记住:

1)如果在执行rebase时发生任何不良情况,最终将在(no-branch)分支上结束。

2)如果你运行git status ,你会在工作目录中看到一个.dotest文件。 这是可以忽略的。

3)如果你想中止rebase使用下面的命令。 1

 git rebase --abort 

4)如果你有合并冲突:

  1. 手动编辑文件以解决冲突
  2. 使用git add [file]
  3. git rebase --continue继续rebase – 继续2
    • 如果git问:“你忘了叫git add ?”,那么编辑就把这个冲突变成了一个无用的变化3 。 继续使用git rebase --skip

你可能不得不重复这个过程,直到完成rebase。 在任何时候,你都可以git rebase --abort分配 – 取消和放弃rebase。


1: git svn rebase没有--abort选项。

2: git svn rebase没有--continue选项。

3:这很奇怪,但是这些文件处于git认为在特定补丁之后它们是相同的状态。 解决的办法是“跳过”rebase上的补丁。