Git在分支中合并中间提交

时间:2010-09-13 06:23:38

标签: git

这是我现在的回购。

Z(master)---A---B---C---D(branch A)
           \
            ---E---F(branch B)

我想将提交A合并到主人,有人可以建议怎么做吗?

(期望的)

Z---A(master)---B---C---D(branch A)
     \
      ---E---F(branch B)

修改

从A到B的基地到分支B的推进是我的错字。请忽略它。抱歉令人困惑!即使我仍然学习一招。

3 个答案:

答案 0 :(得分:2)

我想,就像:

git reset master A

仅限BUt,如果结构类似于>

<old>---Z<master>A---B---C---D<A>
                      \
                       \
                        \
                         E---F<B>

之后就是这样:

<old>---Z---A<master>B---C---D<A>
                      \
                       \
                        \
                         E---F<B>

在其他地方,请更正你的树。

答案 1 :(得分:1)

如果Zmaster上的最后一次提交,则简单的git merge SHA1(A)会将主HEAD快进到A

但是,要从B开始推进branchB(我知道,这是你问题中的拼写错误),你需要:

git branch tmp SHA(B)
git checkout branchB
git rebase tmp

答案 2 :(得分:1)

使用 git merge 将新更改合并到分支中。所以当你主人签出

$ git checkout master

你只需合并 B

$ git merge B

对于上面的 B ,只需使用该提交的哈希值,或者将其命名为A~3或类似。

这将快进以包括所有提交到 B