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

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

【问题讨论】:

    标签: git svn merge conflict


    【解决方案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) 如果您有合并冲突:

    1. 手动编辑文件以解决冲突
    2. 使用git add [file] 暂存任何更改
    3. 使用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 博客链接失效了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-13
    • 1970-01-01
    • 1970-01-01
    • 2018-05-15
    相关资源
    最近更新 更多