如何解决与 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 --continue
2 继续变基
如果 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 的冲突?的主要内容,如果未能解决你的问题,请参考以下文章