首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >git merge命令使用

git merge命令使用
EN

Stack Overflow用户
提问于 2010-11-01 22:01:56
回答 2查看 2.6K关注 0票数 3

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

代码语言:javascript
复制
         C - D - E  my_branch
       /    
A - B -  F - G - K  *master

现在我上主播了。在"git merge my_branch“之后,我在master上得到了类似这样的结果:

代码语言:javascript
复制
A - B - C - D - F - G - K - E - M  *master

(M - merge commit)但我不这么认为:

代码语言:javascript
复制
A - B - F - G - K - M

这一点很重要,因为在my_branch中,我经常只为自己做不可编译的提交;我不想把它们推到master中。如何进行我想要的合并?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-01 22:17:02

我认为你所要求的是一种单次提交的方法,看起来就像你一次完成了你个人分支中的所有工作。请注意,这不是git术语中的“合并提交”;它只是一个普通的提交。

编辑:这里要注意的一件事是,这样做意味着git不会保留任何合并的知识,所以如果你想继续使用你合并的个人分支,它会变得很尴尬。不过,对于在被挤压的“合并”之后不再使用的实验性分支来说,它是完美的。

您可以使用git merge --squash (然后使用git commit提交结果)来做您想要做的事情。这将为您提供所需的结果:

代码语言:javascript
复制
A - B - F - G - K - M

我通常做的是首先操作我的个人分支(使用git rebase -i master)来调整提交,使它们看起来完全像我想要的那样,然后使用git merge将它们带到主分支中。这样我也可以做到:

代码语言:javascript
复制
A - B - F - G - K - M1 - M2 - M3

其中M1M2M3是个人分支中所有工作的返工,但从主分支的角度来看也是有意义的。这很有用,因为在将来使用修订历史时,保持单个提交的数量很小,并且逻辑上进行划分是很方便的。

票数 3
EN

Stack Overflow用户

发布于 2010-11-01 22:17:51

对提交使用--squash选项:它将获取您的分支,将其压缩为单个提交,然后将其合并。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4069543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档