在学习Git时,对我来说最大的惊喜之一就是修改与特定分支不是永久关联的;相反,分支仅仅指向一个特定的修订。一旦我完全内化了这个概念,我意识到我不明白如何正确使用此功能。版本在合并后如何与功能分支关联?
我读过关于a successful Git branching model的明显着名的文章,其中描述了分支为线条,修订为与一条线明确关联。考虑这个摘录:
这显示了两个功能分支(称为它们featureA
和featureB
)和一个develop
分支。此外,featureB
已完全合并为develop
,然后再次短暂分歧,只是重新合并。
这看起来不错,整齐和可以理解,也正好是回购字面上看起来像在这个过程的结尾像Mercurial。我明白这一点,我喜欢它,并且我希望像这样发展(我在Mercurial中也这样做了)。然而,在Git中,最终状态并不像这样。它看起来像这样:
换句话说,我们对两个特征分支只信息他们现在是一样的修改为开发分支。因此,我们可以推断出整个树最好是这样的:
在其他单词,所有那些很好的信息ab走出发展如何失去的历史;它从来没有记录在第一位。观察第一张图中的三个修订版在清除featureB
之前如何合并为develop
,但我没有看到我们如何知道这三个修订版在合并前的featureB
上。
这是正确的吗?以上是我能够在Git中事后恢复的最好结果,并且是来自论文的截图,因此颇具误导性?还是有什么重要的我失踪?
后续问题:[如何在Git中记录发布的历史记录?](http://stackoverflow.com/questions/17654416/how-to-record-a-history-of-releases-for-a-web-project-in-git) –