我正在阅读https://git-scm.com/docs/gitworkflows上的gitworkflows文档(也可以在"man gitworkflows"中阅读),但是分支之间的向上/向下方向的定义对我来说是违反直觉的.我没理解它,所以我想知道是否有任何我想念的东西.
具体来说,上述链接文档的"管理分支>毕业"部分说
毕业
由于给定的特征从实验到稳定,它也在软件的相应分支之间"毕业". git.git使用以下集成分支:
maint跟踪应该进入下一个"维护版本"的提交,即更新最后发布的稳定版本;
master跟踪应该进入下一个版本的提交;
next是作为测试主要稳定性主题的测试分支.
第四个官方分支的使用方式略有不同:
- pu(建议更新)是一个集成分支,用于尚未准备好包含的内容(请参阅下面的"集成分支").
四个分支中的每一个通常是其上方的分支的直接后代.
最后一句似乎暗示maint > master > next > pu是向下的方向(因为master是maint的后代,等等).
但是,文档继续说
从概念上讲,功能在一个不稳定的分支(通常是进入下一个 或PU),和"毕业生",以掌握,一旦它被认为是足够稳定的下一个版本.
合并向上
上面讨论的"向下毕业"[...]
因此,在最后一句中,文档实际上定义了新特征在next > master方向上的传播为"向下分级".这与我早先的印象相反,即master > next是向下的方向.
对我来说,定义maint > master > next > pu作为向下方向感觉不仅更自然,而且更符合上游/下游存储库的定义.我们通常将远程"上游"存储库克隆到本地存储库,实现新功能,并将它们"向上"推送到远程存储库.(注意,这里的最后一步被称为"向上推").这整个过程是并行分支下一从主,在实现新的功能未来,并合并他们掌握.因此,我认为从旁边到master的新功能的传播也应该被称为"向上分级"(与从本地到远程存储库的"向上推"并行).然而,它在文档中被称为"向下毕业".
为什么Git使用这种反直觉定义分支之间的向上/向下方向?我怎么能理解它?或者,为了理解这个定义,我有什么重要的缺失吗?