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

Posted

技术标签:

【中文标题】如何解决与 git-svn 的冲突?【英文标题】:How to resolve a conflict with git-svn? 【发布时间】:2010-09-11 21:18:07 【问题描述】:

在执行git svn rebase 时解决冲突的最佳方法是什么,而您所在的 git 分支变为“(无分支)”?

【问题讨论】:

【参考方案1】:

您可以使用git mergetool 以通常的方式查看和编辑冲突。一旦您确定冲突已解决,请执行 git rebase --continue 以继续变基,或者如果您不想包含该修订,请执行 git rebase --skip

【讨论】:

这有帮助,谢谢。所以其他人没有我的问题....让mergetool 进行您的更改,但不要commit 他们。只需致电 git rebase --continue 进行分阶段更改即可。【参考方案2】:

在执行git svn rebase 时,如果您有合并冲突,请记住以下几点:

1) 如果在执行变基时发生任何不好的事情,您最终将进入 (no-branch) 分支。

2) 如果您运行git status,您将在工作目录中看到一个.dotest 文件。这可以忽略不计。

3)如果要中止变基,请使用以下命令。1

git rebase --abort

4) 如果您有合并冲突:

    手动编辑文件以解决冲突 使用git add [file] 暂存任何更改 使用git rebase --continue2 继续变基 如果 git 询问:“您是否忘记致电 git add?”,那么编辑会将冲突变成无操作更改3。继续git rebase --skip

您可能必须重复此过程,直到变基完成。您可以随时git rebase --abort 取消并放弃 rebase。


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

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

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

【讨论】:

刚刚遇到了无操作更改的事情,真的很奇怪 感谢 --skip 提示,甚至没有考虑过。 整个 git rebase --skip 事情让我有点悲痛,因为我在尝试解决冲突的过程中丢失了很多次更改。事后看来,我可能应该建立一个本地分支并将我的更改放入其中,而不是依赖 git stash。我没有这样做是因为我读过在 git svn 中合并分支存在问题,但我认为这与尝试合并您在本地 git 副本中复制的 svn 分支有关。 我从远程/主干合并到我们团队的工作分支,最后我不得不解决冲突两次,一次是在合并时,一次是在我执行“git svn rebase”时。我做错了什么? @csexton 你的 harrys 博客链接失效了

以上是关于如何解决与 git-svn 的冲突?的主要内容,如果未能解决你的问题,请参考以下文章

SVN中如何解决文件冲突

如何解决jquery与zepto冲突问题

SVN中如何解决文件冲突

如何解决与primefaces jquery的冲突

如何解决ListView与CheckBox的冲突问题

如何正确使用 KDiff3 与 TortoiseSVN 来解决冲突?