由于Git能够跟踪(并保持干净)具有完全不同内容的分支,因此在同一个存储库中,一些项目(如Git本身)已经开始使用它.
例如,Git使用一个分支代码本身,同时将其文档保存在单独的分支中.同样的回购,只是不同的分支.
它可能只是我,来自SVN背景,但我发现在这些分支中"没有任何共同点"令人困惑.开发/分期/生产分支机构; 那些我理解的.分支不完整的特征; 当然,我也在做那些.哎呀,每个语言都有一个分支的文档.但没有共同的文件?
这只是Git中的一个(可能是一个未被充分利用和/或不足的)功能,每个人都应该接受并习惯,或者一个懒惰的人可能会因为没有区分同一个项目的两个方面而被滥用?
我个人不会在不同的分支中存储不同的内容; 在文档和代码的情况下,我只需要创建一个myproject.git和一个myproject-docs.git(如果构建过程需要,则将文档子模块化为代码).
另一方面,如果你这样做,不会发生任何不好的事情.Git不会告诉你该怎么做,所以你可以自由决定如何使用它.所以要回答你的问题,它既不是一个杀手级的功能,也不会让你感到沮丧,如果你不小心的话.这就是有人选择使用它的方式.
Git跟踪项目中(文本)文件的协调变化,因此它不知道或不关心分支是否合并.在Git仓库中拥有独立分支类似于在Subversion仓库中拥有独立项目,这是一种常见的做法(因为svn的开销).
因为Git的数据结构与SVN非常不同,所以你可以用它们做不同的事情.在SVN中,功能分支有点不寻常,并且通常不会合并到主干的功能分支可能是"难闻的气味",这表示程序员"变暗"并且正在创建可能永远不会成为的代码整合到项目中.在Git中,功能分支是一个非常安全且合理的工作流程.
所以它们可以以不同的方式使用,因为Git不是SVN,即使它们都有存储库,分支和提交,并且提供源控制的相同的一般功能.
随着我对Git的更多经验,奇怪的是变得与众不同.然后我很好奇我能用不同的工具做些什么.
我说它更像是一个懒惰的解决方法,因为Git目前无法处理多个项目存储在同一个存储库中.你可以做到,但没有办法拉下你想要的那个.
我说"懒惰",因为当git开发人员发现需要它(用于存储文档)时添加该功能并不会太难以实现.由于他们使用了这个奇怪的分支黑客,他们为其他人解决问题的动机已经大大减少了.