在切换到开发分支之后,我试图了解git将我正在处理的一个特性分支合并到主开发分支中的情况。
我能够恢复合并,但它花了一天的大部分时间来完全解决,我想在将来避免它。
以下是工作流程:
在处理我的特性分支之后,我需要处理一个bug修复程序。我的特性分支(参考文献/头/功能/上载器/90)与主要开发分支保持一致:
git merge origin/develop然后我需要转到开发部门:
git checkout developgit产出:
切换到分支‘发展’你的分支落后于‘起源/发展’88提交,并可以快速转发。
然后,当我发出拉:
git pull origin refs/heads/develop由于某些原因,它看起来像是git决定将我的特性分支合并到开发中,输出如下所示:
branch develop -> FETCH_HEAD
Fast-forwarding to: 102301bcc51fc6d7978e5287df9d031d82e53bc9
Trying simple merge with d139bab0a96df01408f82110e38b6e0b6b98e6e6
Merge made by the 'octopus' strategy.我的提交日志向我展示了提交:合并分支的特性/uploader/90和github.com的“开发”:MakerStudio/仪表板
发布于 2013-01-10 19:52:51
这就是所谓的快进合并。
在您进行合并时(默认情况下),您所在的分支中的所有更改都已经出现在您要合并的分支中。
因此,由于在上面的示例中,refs/heads/feature/uploader/90已经包含了refs/heads/develop中的所有更改,而不是创建真正的合并提交,因此git只是将ref develop移动到指向与feature/uploader/90相同的提交。
您可以通过执行不会快速转发的git merge --no-ff或将merge.ff属性更改为false来避免这种行为。
取消不想要的快速进合并并不像你想象的那么困难:只需在合并之前提交最后一次提交即可。
https://stackoverflow.com/questions/14266010
复制相似问题