我试图遵循现在着名的git flow开发模式,但我在理解如何从命令行执行某些操作时遇到一些困难。如果我从主分支运行git merge develop
,则开发分支的历史记录将移至主分支。 EX:
以下是我的回购在合并之前的样子:
F--G--H--I Develop
/
A--B--C--D--E Master
这是合并后的样子:
A--B--C--D--E--F--G--H--I Master
这是合并后我想要的样子:
F--G--H--I Develop
/ \
A--B--C--D--E------------J Master
如果我使用'合并请求,我只能获得所需的结果。我的git web界面的功能(gitlab)。我知道有一种方法可以用香草git做到这一点,我错过了什么?
答案 0 :(得分:3)
您错过了--no-ff
上的git merge
标记。 ff
代表快进;由于Master自Develop以来没有进展,git
可以进行合并,保证不会出现合并冲突。 git
将此类合并称为快进合并。 --no-ff
标志强制git
执行非快进合并,这意味着它将在您的图表中进行显式合并提交(J
)。
总之:
git merge --no-ff develop
这是gitlab在您通过Web界面进行合并时所执行的操作。