git merge:有没有办法强制--squash?

时间:2012-05-16 15:59:00

标签: git merge squash

因此,我们项目的开发工作流程是这样的:我们创建一个任务/错误票据,然后我们分支主人来处理任务/错误,并最终将其合并回主人。我们希望master上的提交有很好的消息。在任务分支上提交的人可能没有好的提交消息,这没关系,但是如果要合并分支,那些带有不洁信息的提交将进入主服务器。

解决此问题的一种方法是始终使用--squash与master合并。这样,您就有机会提供良好的提交消息,并将整个提交范围视为一个。我想知道是否有办法强制执行?意思是,如果我们可以让git服务器拒绝那些没有被压扁的合并?

3 个答案:

答案 0 :(得分:8)

虽然它不是直接强制,但您可以将--squash设置为master分支的默认合并选项:

git config branch.master.mergeoptions  "--squash"

这将始终压缩要合并到master中的提交,而不必指定--squash选项。

答案 1 :(得分:1)

您需要的是一个服务器端钩子,以确保您所需要的是什么。您将拒绝任何引入多个非合并提交的引用更改。您可以在那里进行其他检查,例如看到评论包含票号等等。

答案 2 :(得分:0)

您可以在分支上使用rebase -i,这样您就可以将分支上的所有提交压缩为1次提交,然后将该分支(1次提交)合并到master。