代码之家  ›  专栏  ›  技术社区  ›  Tobias Kienzler

如何暂时解除锚链?

  •  0
  • Tobias Kienzler  · 技术社区  · 14 年前

    我从分支a开始了一个功能分支B。然后我在这两个方面都做了一些改变。将A合并到B中,然后将B合并到A中,结果两个头部指向同一个合并提交(这是我想要的,因为A中的更改也应该影响分支B)。现在有一段时间,只有一个国家会经历变化。

    5 回复  |  直到 14 年前
        1
  •  2
  •   tanascius    14 年前

    不,你不能坚持 B A 就像你描述的那样。
    您已经列出了备选方案。我只想删除 B

        2
  •  2
  •   Greg Bacon    14 年前

    我假设B的真名足够让人联想到,仅仅是在B的输出中看到它 git branch 或者在展示 gitk --all

    下一次,当你对A进行修改并想让B赶上时,检查B并将其推进到A的头部。您编写了A和B当前都指向同一个提交。接下来,当您对A进行了更改时,B的历史记录仍将不包含A中尚未包含的内容,因此这是一个简单的重设基础:

    git rebase A B

    上一个命令签出B,因此当您准备好继续处理A时:

    git checkout A
        3
  •  1
  •   Marcelo Cantos    14 年前

    如果您再次将A合并到B,它应该向前跳转以满足A,然后您只需再次开始对B进行提交。

        4
  •  1
  •   Borealid    14 年前

    quilt )在A上面。然后你可以在空闲的时候做它;每次你想更新到A的最新版本,你就弹出你的补丁,更新A,然后再次模糊你的补丁,修复任何损坏的东西。

    Mercurial实际上有一个内核内扩展,可以轻松地完成这项工作,并将补丁保持在修订控制之下。

    这就是你要找的吗?

        5
  •  1
  •   che    14 年前

    假设你有一个 主人 分支与您的主代码行。然后决定实现一个新的foo特性,并创建一个新分支 ,开发您的功能,然后发现您的 主人 主人 a修复那里的错误。然后,当您继续开发您的特性时,您可以签出 ,并使用 git merge master . 那你就把一切都安排好了,不需要把任何东西放在任何地方。

    并在以后合并时合并更改 给你的 主人 分支。)