我希望有人可以解释更好的方法。
假设我有“主人”,然后是主人的两个分支--A和B.
通常,当我完成分支A时,我将master合并到A中,解决所有冲突,然后合并到master。
然后检查分支B并执行相同操作...掌握到B中然后备份到主人。
但是,在与B合并之后,分支A不再是主流,这就是我想要的。我通常只将主人合并到A,因为那将是我的分支,B是同事。
这很好,但是当我们添加员工并试图同步所有分支时会很烦人。
我知道我可以修剪分支,但是那时在不同分支上工作的用户每次都必须分支。我希望能够在将所有分支合并到主服务器后“同步”所有分支,这样用户就可以在早上在同一分支上接收而不会跳过一个节拍。
有办法做到这一点吗?
答案 0 :(得分:2)
好的,让我们想象一下。 这是你进行任何合并之前的历史:
O A
/
O - O - O master
\
O - O B
然后,您将master
合并到A
并将其合并回master
:
O - O A, master
/ /
O - O - O
\
O - O B
然后,您对B
执行相同的操作。将master
合并到B
:
O - O A, master
/ / \
O - O - O \
\ \
O - O - O B
然后将其合并回master
:
O - O A
/ / \
O - O - O \
\ \
O - O - O B, master
正如你所看到的,这样做会造成很多混乱。但是,要在此处A
与master
同步,请将其合并。这将是一个快速前进,然后看起来像那样:
O - O
/ / \
O - O - O \
\ \
O - O - O A, B, master
OR
做你想做的更好的方法:
将所有内容直接合并到master中。如果您再次合并它,则不需要将master
合并到另一个分支中。即使出现合并冲突,由于无法推动合并冲突,因此在完成此操作并推送之前,没有人会注意到您正在分支机构中工作。直接合并到master将产生以下结果(与您的相同,但A
和B
指向其他地方):
O A
/ \
O - O - O - O - O master
\ /
O - O B
然而,这使您没有合并A
和B
。他们仍然指出一个旧的提交。所以,快进将它们合并到master中。那将使你的历史看起来像这样:
O
/ \
O - O - O - O - O A, B, master
\ /
O - O
当您现在再次在A
和B
中提交某些内容时,它们会有所不同,并使历史记录看起来像这样:
O O A
/ \ /
O - O - O - O - O master
\ / \
O - O O B
这正是你想要的吗?