我将git用于个人项目,并认为它很棒。它快速,灵活,功能强大,非常适合远程开发。
但是现在它必须在工作中,坦率地说,我们遇到了问题。
开箱即用,git似乎不适用于大型(20+开发人员)组织中的集中开发,该组织具有不同能力和git复杂程度的开发人员-尤其是与Perforce或Subversion等其他源代码控制系统相比,git针对这种环境。(是的,我知道,Linus从未打算这样做。)
但是-由于政治原因-我们仍然坚持使用git,即使它因我们试图使用它而糟透了。
以下是我们看到的一些内容:
- GUI工具还不成熟
- 使用命令行工具,很容易搞乱合并并消除其他人的更改
- 它不提供超出全局只读或读写特权的每用户存储库权限
- 如果您对存储库的任何部分都具有权限,则可以对存储库的每个部分执行相同的操作,因此您不能做其他事情,例如在中央服务器上建立小组跟踪分支,而其他人则做不到搞砸了。
- 除了“无所不能”或“仁慈独裁者”以外的工作流程很难鼓励,更不用说强制执行了
- 尚不清楚使用单个大型存储库(让每个人都弄乱一切)还是使用大量每个组件的存储库(使尝试同步版本感到头痛)是否更好。
- 对于多个存储库,也不清楚如何通过从中央存储库中提取其他人来复制所有资源,或者如何做一些事情,例如从昨天下午4:30开始获取所有内容。
但是,我听说人们在大型开发组织中成功使用了git。
如果您处在这种情况下-或者您通常拥有一些工具,技巧和窍门,可以使在某些人不是命令行爱好者的大型组织中使用git更容易,更有效率-我很想听听您的想法建议。
顺便说一句,我已经在LinkedIn上问过这个问题的一个版本,没有真正的答案,但是有很多“天哪,我也想知道!”
更新:让我澄清一下...
在我工作的地方,除了git,我们什么都不能使用。这不是一个选择。我们坚持下去。我们不能使用mercurial,svn,bitkeeper,Visual Source Safe,ClearCase,PVCS,SCCS,RCS,集市,Darcs,单调,Perforce,Fossil,AccuRev,CVS甚至我在1987年使用的Apple优秀的ol'Projector。因此,尽管欢迎您讨论其他选项,但如果您不讨论git,就不会得到赏金。
另外,我还在寻找有关如何在企业中使用git的实用技巧。我把整个问题清单放在了这个问题的首位。同样,欢迎大家讨论理论,但如果您想获得赏金,请给我解决方案。
a process
...(我讨厌这个词)