Gitlab 上在合并 Merge Request 的时候有一个 Squash Commit 的选项。这个选项其实对应的是 git merge 的命令行参数 --squash

--squash 选项的含义是:本地文件内容与不使用该选项的合并结果相同,但是不提交、不移动 HEAD,因此需要一条额外的 commit 命令。其效果相当于将 another 分支上的多个 commit 合并成一个,放在当前分支上,原来的 commit 历史则没有拿过来。判断是否使用 --squash 选项最根本的标准是,待合并分支上的历史是否有意义。