@longj
2018-06-30T20:13:29.000000Z
字数 790
阅读 5515
我们在使用 git 进行版本管理的时候,合并分支最常用的是 git merge <branch>
的命令。但是其实 git 合并分支的方法并不只是这一个。还有其他的方法,可以更好地适合不同的情形,今天主要介绍的是 git merge 命令中的 --squash
的设置。
有时候我们开发的时候,为了更好地进行回退和开发,我们会不时地 git commit
来进行 backup。导致有时候我们的分支历史看上去是这样的。
如果这样在 master 上开发会使得我们的分支历史变得非常冗余。并且当 master 分支上的东西出现问题的时候,版本回退变得更加困难。随着 git 的使用程度逐渐深入,我们需要意识到,master 分支上的代码,应该做到每个版本的代码都可以稳定运行的。但是适时的备份又是开发不可避免的一个需求,那么如何解决这种矛盾呢?git merge --squash
就是其中一种解决方法。
git merge --squash <branch>
, 加上了这个标签之后,顾名思义,就是将 <branch>
分支上的修改压缩成一个提交再合并过来。也就是说 将 branch 上的所有改动压缩成一次 commit 再尝试合并进入当前分支。这样之后我们还需要用一次 git commit
来进行一次提交,这个时候我们的分支就可以变得非常简洁了。如下图所示:
知道了 --squash
这个参数后,以后进行合作开发,我们可以这样操作:
git merge --squash feature
来进行压缩合并