【发布时间】:2015-09-01 14:46:31
【问题描述】:
我正在尝试弄清楚如何管理 Git 分支,以便为我的开发过程提供正确且可读的流程。
基本上我们有一个master分支,一个project分支,那么我们就可以在这个project分支下开始开发特性了。我也希望能够做支行。
假设我会有 master -> project -> feature 1 -> feature 1 sub 1 ...
我在 Hg 中得到的结果如下所示:
我在 git 下实际得到的是这样的:
基本上整个开发流程都丢失了,1年的时间就没有办法知道“接口重构”是不是跟“复制速度模型”的一个子部分有关。
此外,我正在避免快进合并,因为它只是丢失了所有历史记录,但在几个月后,我什至无法判断“更新必要的 setExecutionMode”是在“InterfaceRefactoring”下完成的,而不是“...的重复”
我正在认真考虑回到 Hg 并使用插件在 Hg 和 Git 之间架起一座桥梁,因为 Git 非常不友好,但我也非常想使用公司工具,因为它仍然是一个现代且高效的 SCM(不像 SVN 或 CVS)。
我仍然认为我可以得到我想要的,我只是不明白如何。
我做错了什么?
【问题讨论】:
-
我建议您实际查看您的 Git 网络图,以便更准确地了解分支结构的外观。
-
在 git 中,分支只是指向提交的指针。它不包含历史信息。我很好奇你如何避免快进合并。您是否进行了额外的提交以确保发生合并?
-
什么是 git 网络图?
-
Wolf:有一个 tortoiseGit 合并选项:无快进(命令行:--no-ff)。它强制合并。
标签: git mercurial git-branch branching-and-merging