我是git的新手,虽然我可以看到分支/合并过程对单个项目的巨大好处,但在我看来,Git的另一个有用的应用是使用它来集中核心自定义代码和模板您经常在所有项目中使用,每个项目都以自己的分支开始。
例如,我有一大堆自定义代码,它只是我用于所有应用的起点。如果我在这里和那里调整它,或者发现错误并修复它们,我希望通过所有使用该代码的项目进行复制。
通过在主服务器的单独分支中进行调整,然后合并回主服务器,然后将主服务器与占用单独项目的其他分支机构合并,看起来我可以很好地实现这一点。
这种Git方法有什么主要缺点吗?
虽然我知道子模块存在,但我现在不想使用它们,因为它们在Xcode中不是本机支持的。
答案 0 :(得分:0)
有几个项目倾向于按照自己的条件推进。如果你们在同一个分支上一起拥有,你会看到混合的提交,并且没有任何历史感可以辨别。如果你将每个项目放在一个单独的分支上,你将不得不从一个跳转到另一个,并且对单独的git存储库没有任何优势(git是非常轻量级!)。
DVCS会增加开销(如果有几个具有相同内容的存储库,它肯定会增加磁盘空间;但现在这很便宜......)。它的优势在于你可以在任何地方自由工作(无需等待缓慢的连接),并且(至少使用git)操作通常非常快,直到你习惯了它,你就会有这种挥之不去的恐惧,你是被骗,没有做任何事......
对于开发而言,分支和合并工作且便宜的事实意味着鼓励实验和探索。提交是即时的并占用很少的空间这一事实导致微观提交(一次逻辑更改,即使是最小的错误修正或错误,每次提交),而不是“早上值得工作”转储。这使历史变得易于理解,git bisect
之类的工具非常有用。
我有一堆git存储库,其中包含我希望保留历史记录的内容,但不一定与其他任何人共享。我保留在远程存储库中的一些更重要的东西(在另一端不仅仅是git
和ssh
,并且需要一些纪律来推送它们) 。从这个意义上讲,我更多地使用git作为本地VCS,它还具有我可以与他人共享的优势; - )