2016-08-16 169 views
1

我在gitlab有两个分支masterrelease如何在批准合并请求时压扁提交,gitlab

在发布分支,我希望它只会提交如下消息:v0.1.0,v0.1.1。

说我完成发达v0.1.0,我有几个特点和bug修正提交在master

c1. bugfix1 
c2. feature1 
c3. feature2 

我将创建gitlab从masterrelease合并请求,但我希望让这三个提交到一个v0.1.0,和南瓜c1 c2 c3。

现在,在我现有的设置,我将有4提交信息:

Merge breanch 'master' into release 
c1 
c2 
c3 

有没有办法来消灭它,当我在gitlab批准,以便有消息会挤进:

v0.1.0 

请注意,这两个分支都是受保护的分支,如果可能的话,我希望 git命令在releasemaster分支上,只有gitlab操作

回答

0

的合并提交只有一个承诺,但似乎你已经陷入了“快进”的陷阱。也就是说,在您的合并中,git已决定masterrelease的直系祖先的一部分,然后仅在release之上“快速转发”您的更改。那么,这看起来就像你所描述的那样。

为了解决这个问题,增加您的合并的--no-ff选项:

git checkout release 
git merge --no-ff master 

你会的话,恰好有一个对你release分公司提交;您可以编辑提交消息以包含您的发行版本。

0
git checkout release 
git merge --squash master 
git commit -m "Suitable Message of your choice" 

这将采取一切从master分支的提交,他们挤进了1提交,然后用你的release分支合并。