![]() |
1
0
对于git,分支只是指向分支尖端提交的指针。它不包含任何自己的信息。所以,你的历史可能是这样的:
各
根据你真正想做的事情,你可能对使用 submodules 它本质上是一种将repos放置在repos内部的机制,这样您就可以拥有一个包含子项目(嵌入)存储库的元项目存储库。 |
![]() |
2
2
对于Bazaar,如果在共享存储库中创建两个分支,那么它们拥有的任何公共历史都存在于存储库中,而不是分支本身——分支只引用它。这样可以为具有相同项目的多个分支、具有不同功能的存储库节省磁盘空间,并加快创建新分支的速度(不必复制包含分支历史的文件)。我看过hg和git已经有一段时间了,但我不相信它们有和这个相同的特性。 巴扎没有子项目。分支是一个完整的、连续的单元。你不能将它的一部分分支。不过,我相信Git和Hg都有分支机构。 |
![]() |
3
1
颠覆是集中的,你可以在 一 按你的意愿回购。 因为branchbes被模拟为带有svn的目录,所以最终会混合:
但是用
DVCS
,每个存储库都是它自己的组件(或模块)。
这就让你将分支视为纯粹的历史隔离:
|
![]() |
4
0
一般来说,分布式版本控制系统只支持您从现有分支的整个分支中创建一个新分支,而不允许您复制正在工作的一小部分内容(就像Subversion那样)。Git至少(我认为还有其他一些)允许您引用子模块(它们本身就是Git存储库)。 Git允许你做任何你想做的事情,即使它不是特别有用或明显(即使这些工具并不真正支持你做这件事)。Git存储库中的所有分支都需要有一个共同的父级,或者根本没有任何相互联系的技术原因。也没有什么能阻止您构建一个由其父提交的子树组成的提交,而Git的更改跟踪和合并实际上很可能在这种情况下能够很好地处理。 在这方面,Mercurial与Git至少有所不同,因为Mercurial工作流似乎是为尝试在不同的存储库中保留不同的分支而量身定做的,而Git工作流则非常乐意在同一存储库中拥有多个分支。 |