git合并双向崩溃历史

时间:2018-08-22 08:07:56

标签: git merge atlassian-sourcetree git-flow

我曾经使用过sourcetree和git-flow。 在关闭功能分支之前,我通常将开发合并到其中。

为此,我右键单击功能分支中的development分支,然后选择“将开发合并到feature / ...”。之后,我使用git-flow工具完成该功能。

现在我只想使用终端(没有sourcetree)来做到这一点。 因此,在功能分支中,我运行“ git merge development”。 之后,我签出开发并运行'git merge feature /...'

我期望的结果与sourcetree / git-flow方式相似。 但是我结束了一段奇怪的历史! 现在,我只提交了“在...中合并分支”,这现在是develop分支行的一部分。尽管文件更改仍然存在,但第二次提交(将功能合并到开发中)已消失。

有人知道这是怎么回事吗?

更新

复制步骤:

commit changes in feature branch
commit changes in develop branch
commit changes in feature branch
merge develop into feature branch (git merge)
merge feature into develop branch (git merge)

此后,将功能合并到开发中的提交消失了(尽管文件更改仍然存在),并且历史记录看起来很“奇怪”,这意味着功能分支的提交已成为开发分支历史记录的一部分。

1 个答案:

答案 0 :(得分:0)

我自己找到了解决方案。 问题是默认的快速前进git合并。

如果我进行git merge development,请签出开发分支,并使用--no-ff进行git merge功能,一切都很好。 顺便说一句,git-flow工具也一样。