使用Git对小型内部团队有意义吗?

时间:2011-07-04 07:08:04

标签: git svn

在我看来,Git是为大型开源项目而设计的,拥有大量的开发人员和团队。

我想知道Git是否适合小型团队(< 10)和内部项目(组织内部)。我知道拥有存储库的本地副本有明显的性能优势(尽管在您的组织内部存储库时这并不重要......)。

你还会推荐Git(及其附带的复杂性)以及为什么?

7 个答案:

答案 0 :(得分:16)

Git并不是那么复杂。它非常强大而精确。对于一个人的项目或一个10万人的项目,我不会使用任何其他东西。我的意思是。

我明白为什么人们说它很复杂,但整件事都被高估了。要完成您需要做的所有事情,您最多可能需要使用10个命令。而且你不需要理解那10个的每个选项...只是一些烹饪风格的“食谱”。

做什么需要了解的是关于Git如何区别引擎盖。但那并不是因为git很复杂 - 这是因为Git不同。你可以花一些时间在一两天的时间里挖掘这些信息,你会很高兴。

原谅我的粗暴,但Git使文件系统成为b * tch。您可以随意在软件项目的“替代现实”之间切换。一旦了解了工具的来源,就可以完全控制构成软件的位和字符。期间,软件开发人员可以使用这种功能的工具很少。

是的,伙计,我推荐Git。做吧。你会很高兴的。祝你好运。

答案 1 :(得分:5)

Git对大型和小型团队都有意义。是的,git很复杂,但这并不意味着你总是要处理这种复杂性。我每天都使用git,除了:

之外我很少发布任何其他内容
git branch # To remind myself what features I'm working on.
git checkout <name_of_branch> # To switch to whatever I want to work on.
git checkout -b <name_of_new_feature> # To start work on a new branch
git add <name_of_file> # To add it to the list of tracked files.
git commit -m <commit_message> # To checkpoint my work.
git merge <name_of_branch> # To integrate changes back to trunk.
git branch -d <name_of_branch> # To delete a branch after it has been merged.

每天只需要记住一些命令。对于比这更复杂的事情,您可以随时在文档中查找。

我真正喜欢git的一个原因以及我强烈建议使用它的原因是,即使尚未准备好将其提交到存储库,您也可以保持工作检查点和版本控制。例如,在实际向其他开发人员展示之前,我可能会在本地多次使用“git commit”。这极大地增加了我对代码进行更改的信心;我可以尝试而不用担心我现在的工作会丢失 - 如果出现问题,我总能恢复安全版本。这不能说是SVN,例如,在主存储库中可以看到任何提交。

答案 2 :(得分:4)

我将Git用于我自己运行的项目(团队规模= 1)和另一个有5名成员的项目

我个人喜欢它的原因:

  • 无痛branching and merging;
  • 设置累积不同类型更改的several repositories(对Web项目有用);
  • 它可以通过HTTP,SSH等方式工作(从不考虑如何连接);
  • 一旦你习惯了提交直到好推后工作流程,你就不能真的回去。

聪明团队的好处更为明显:

  • 可以在分支机构上工作数周,而不必担心以后必须修复100个冲突;
  • 分布式工作流程更有意义,并且在您的流程中集成了代码审核

然而如果你的团队愚蠢(有时可能是真的)或对Git有偏见,我强烈建议反对因为需要一定的努力和程序员好奇心学习,并不是世界上的每个人都想分支,合并,使用分布式工作流程或Git提供的任何其他东西。

答案 3 :(得分:1)

这很简单:它做了它应该做的非常漂亮的版本控制。

不多也不少。

它适用于我的IDE,它完美地合并了组编辑,我可以随时提取旧代码。

答案 4 :(得分:1)

是的,因为与svn相比,更改跟踪的工作原理。 (大型多步合并中的冲突更少。)

是的,因为您可以在工作时执行小型本地提交,然后将完整的工作更改推送到主存储库。当您执行推送时,所有的小提交都会被推送。

是的,因为当您从主存储库执行拉取时,它不会立即合并,而是将拉出的内容放入分支中。适用于进行较大更改并希望在某些计算机上延迟更新的情况。

答案 5 :(得分:1)

对于单人项目,我更喜欢git而不是svn。 在整个生产线上使用相同的工具更容易,并且维护git和svn reposities对我来说似乎毫无结果。

答案 6 :(得分:1)

我会说是的。

即使我自己也倾向于使用git,因为它具有所有有用的功能。从长远来看,除了两个操作(推拉)之外的所有操作都不需要打网络(甚至是内部网络)是一个巨大的节省时间。检查不同分支的事情就在本地发生,就像阅读日志一样。

请注意,即使git是分发的,你仍然可以拥有中央存储库,每个人都在推动和拉动。但按惯例,它只是一个中央存储库。

廉价创建分支机构也是一个优势。您可以轻松地创建一个主题分支,在其中实现一些小功能,稍后您将在开发分支中再次合并。

查看成功的分支策略git flow