我在我的git仓库中使用GitFlow,所以我有一个master
、develop
和(临时的)release
分支。
工作流程
- 我从
develop
创建一个新分支(例如fix/fix-the-bug
) - 我将我的修复压缩成有意义的提交
- 我将
fix/fix-the-bug
分支合并到develop
中 - 一旦我合并了足够多的分支,我就从
develop
创建一个(临时的)release/x.y.z
分支 - 我在
release/x.y.z
分支中升级版本并标记该提交 - 当我想要将
release/x.y.z
合并到master
时,我会遇到合并冲突。似乎master
不理解提交已经存在于master
中 release/x.y.z
分支被合并到develop
中- 我删除
release/x.y.z
需要注意的几点,不确定它们是否全部正确:
- 当合并到主分支时,我将我的提交压缩成一个提交
master
应该有一个git标签指示版本号,但如果我压缩提交,不确定是否能正常工作。
问题
现在我想知道:
- 如何修复我的仓库,因为我认为我不应该遇到这些冲突。
- 欢迎进一步的工作流程建议(例如在哪个部分我可以最好地进行压缩)。
master
将包含与develop
中完整历史记录相同的内容,但应使用--first-parent
选项查看? 2)我应该在“version-bump”提交上保留带有版本号的git标签? - GlennMAB
的第二个父指针使得完整的历史记录可达,这意味着(1)默认的日志输出(如果您不使用--first-parent
)会显示它,以及(2)AB
将用作将develop
合并到master
的下一个合并基础。 - Mark Adelsbergermaster
分支时,我看不到标签了(因为它不在--first-parent上)。 所以我认为我应该将git标签移动到主分支上的合并提交中,如GitFlow文档中所述?$ git checkout master $ git merge --no-ff release/x.y.z $ git tag -a x.y.z - GlennM