我们已经看过并观看了有关大型分布式团队如何使用Git的视频,但是我们这些未分发的人以及与我们团队其他成员一起在办公室工作的人呢?我们应该如何构建我们的存储库和工作流程?
想想一直使用Subversion或CVS作为单一权威的传统办公室.当然,这些团队可以根据需要维护自己的Git存储库并在彼此之间推/拉,这在很多情况下很快会变成噩梦.或者,他们每个人都可以维护自己的存储库并与单个存储库同步,该存储库被称为团队的"主人".或者,可以存在任何工作流程组合以及DVCS打开的可能性.
你的团队如何运作?您发现什么是有用的工作流程?
我喜欢雅虎的方式!用户界面(YUI)团队似乎正在运行.我不是雅虎,也不是我的团队,但是他们的git提交日志显示了他们的流程.
YUI团队维护着一个中央存储库,团队中的每个人都可以提交访问权限.在提交到此存储库之后定期(可能是在每次推送之后,但我不这么认为),构建系统触发,重建YUI并将新标记的提交推送到github,社区可以在其中分叉代码并对其进行处理.
我赞成代表项目"官方"状态的中央存储库.当然,如果我想与同事共享代码,我可以安排他们从我这里分支代码,我们可以通过这种方式进行协作.
"主"存储库还提供其他优点,例如易于持续集成,因为可以在"主"存储库上配置推/拉触发器以触发单元测试和构建系统.它还确保每个人都知道存储库的最新"已知良好"版本的位置,因此,如果需要构建,发布或测试项目,可以合理地保证"主"存储库已为此做好准备.
Git几乎可以支持您能想到的任何工作流程,但即使是在一个小团队中,您也不希望有关于"官方"存储库位置的问题.可能导致的维护噩梦,特别是当您接近释放时,将是令人不愉快的.