Git从分支合并到大师:如何获得没有分支东西的干净大师?

时间:2013-04-16 04:52:29

标签: git

这是我的情况,有一个GIT存储库,我正在为master工作,而其他人正在分支机构工作,比如说地铁,有以下历史记录(比如一个文件):

编辑:抱歉,格式化不是用户友好的,我已将其更新如下:

人A和B都在同一个文件上工作,A人正在使用 承诺: Time1A,Time2A和Time3A 变化: 分别增加了1,3,5个

B人正在分支地铁上工作: Time1B,Time2B和Time3B 变化: 分别增加了2,4,6个

当PersonB从地铁到主人合并时,提交历史将如下:

Time1A,Time1B,Time2A,Time2B,Time3A,Time3B

在我得到的文件中:1,2,3,4,5,6。

如果我需要在合并之前获得一个干净的主人,我可以查看Time3A的提交吗?它是否包括在Time3之前从地铁合并的东西?

由于

2 个答案:

答案 0 :(得分:3)

在Git中进行合并只会增加历史记录。它不会修改过去 - 如果在合并后签出过去的提交,那么提交将与提交时完全一样。

顺便提一下,你的时间表并不是真的正确:这两个分支没有追溯混合。更好地描述提交历史将是:

master -> ... Time1A -- Time2A -- Time3A
                                        \
                                         >-- Merge
                                        /
subway -> ... Time1B -- Time2B -- Time3B

在此历史记录中,标记为“Merge”的提交有两个父项(Time3A和Time3B)。

答案 1 :(得分:2)

一个更好的解决方案是让B改变他/她在A

上的工作
(master) -> ... Time1A -- Time2A -- Time3A
                                        \
                                         >--  Time1B' -- Time2B' -- Time3B' (subway)

然后合并到掌握是一个快进的:

(master) -> ... Time1A -- Time2A -- Time3A --  Time1B' -- Time2B' -- Time3B' (master,subway)

请参阅" git rebase vs git merge"。

相关问题