git合并命令的使用

git合并命令的使用,git,merge,branch,Git,Merge,Branch,我无法在git中进行正确的分支合并。例如,我有两个分支: C - D - E my_branch / A - B - F - G - K *master 现在我是大师。在“git merge my_branch”之后,我在master上得到了一些类似的信息: A - B - C - D - F - G - K - E - M *master (M-合并提交) 但我认为: A - B - F - G - K - M 这一点很重要,因为在我的分支

我无法在git中进行正确的分支合并。例如,我有两个分支:

         C - D - E  my_branch
       /    
A - B -  F - G - K  *master
现在我是大师。在“git merge my_branch”之后,我在master上得到了一些类似的信息:

A - B - C - D - F - G - K - E - M  *master
(M-合并提交) 但我认为:

A - B - F - G - K - M

这一点很重要,因为在我的分支机构,我经常只为自己进行不可编译的提交;我不想把他们推到大师那里。我要怎么做

我认为你所要求的是一种做出单一承诺的方式,似乎你一次完成了你个人部门的所有工作。注意,这不是git术语中的“合并提交”;这只是一个正常的提交

编辑:这里需要注意的一点是,这样做意味着git对合并没有任何了解,因此如果您想继续使用您合并的个人分支,它会变得很尴尬。不过,对于在挤压“合并”后不再使用的实验分支来说,它是完美的

通过使用
git merge--squash
(然后使用
git commit
)提交结果,您可以完成所需的工作。这将为您提供所需的以下结果:

A - B - F - G - K - M
我通常首先操作我的个人分支(使用
git-rebase-I-master
)来调整提交,使它们完全符合我的要求,然后使用
git-merge
将它们放入master。这样我也可以做到:

A - B - F - G - K - M1 - M2 - M3
其中,
M1
M2
M3
是个人分支中所有工作的重做,但从主分支的角度来看也是有意义的。这很有用,因为在将来使用修订历史记录时,保持单个提交的小规模和逻辑划分非常方便。

使用
--squash
选项来
git merge
:它将接收您的分支,将其压缩为单个提交,然后将其合并到中