什么';git有多棒?

什么';git有多棒?,git,version-control,dvcs,Git,Version Control,Dvcs,对于来自更传统的VCS背景(CVS/SVN)的人来说,学习和迁移到git的最有说服力的原因是什么 请评论团队为使git正常工作所需的技术能力。我见过聪明的人在学习曲线上爬上了台阶,但仍然会因此而失去一些头发。任何人都能爬上这条曲线,或者git不适合所有球队 当然,我也想了解功能优势、工具支持、与其他系统的集成(CI等) (这似乎是一个显而易见的问题,但尽管进行了几次搜索,我还是没有找到重复的问题) 编辑到优秀资源的链接也很受欢迎。Git很深,一开始可能很棘手。我想说的是,这绝对不是每个人都能做到

对于来自更传统的VCS背景(CVS/SVN)的人来说,学习和迁移到git的最有说服力的原因是什么

请评论团队为使git正常工作所需的技术能力。我见过聪明的人在学习曲线上爬上了台阶,但仍然会因此而失去一些头发。任何人都能爬上这条曲线,或者git不适合所有球队

当然,我也想了解功能优势、工具支持、与其他系统的集成(CI等)

(这似乎是一个显而易见的问题,但尽管进行了几次搜索,我还是没有找到重复的问题)


编辑到优秀资源的链接也很受欢迎。

Git很深,一开始可能很棘手。我想说的是,这绝对不是每个人都能做到的,特别是如果你有设计师或其他非技术人员需要检查和离开的话。在我们当前的项目中,我们运行了一个svn后端,三个开发人员选择使用git,而两个开发人员继续使用svn,并且非常满足和高效

也就是说,git可以提供很多东西。在不深入了解git魔法的情况下,您可以很快学会利用它最流行的一些方面:在本地签入而无需向上游推送到主回购协议的能力,以及几乎完全无需麻烦的分支和合并

使用一些基本的命令,您可以获得非常满意的git体验

在所有的资源中,Scott Chacon的是让我相信git的好处,并激励我通过陡峭的学习曲线。

在我的脑海中:

  • 它的分布式特性(每个开发人员都有一个存储库副本)
  • 快速处理复杂合并的能力
  • 从一个任务切换到另一个任务的可能性,搁置他的工作,重新开始
  • 廉价分支(即时开关:它只在文件中写入几个位,而且它不把分支视为像SN那样的目录)
主要的困难是在不同回购协议之间建立一个,而不打破已经公布的历史(推到公开回购协议)


(来源:)


特别是,rebase一开始可能很难正确使用,因为它确实重写了分支的历史,并将与之相关的SHA1更改为公共分支,这意味着其他开发人员从中进行了大量合并。

一个月前我刚开始使用git,我非常喜欢它。它对于团队和个人来说都是快速且易于使用的。学习并不难,我不需要学习任何新的技术技能来使用git。我知道它支持从CVS/SVN迁移。最好的部分是,如果需要,您仍然可以维护CVS/SVN样式的工作流

我建议查看git wiki: 及官方网站:


我希望这对您有所帮助,您也喜欢使用git。

git速度极快,存储库非常紧凑(想想svn中相同代码库+历史的十分之一到百分之一大小)。Git(以及大多数分布式VC)为您提供了廉价的分支,这些分支可以毫无痛苦地生成、处理和合并。这一切都发生在本地,团队成员不会被队友正在进行的工作分心,除非有积极的努力来分享

转向分布式VCS将导致开发风格的一些变化,有些开发人员会喜欢,但有些人可能会讨厌。毫无疑问,git是一个复杂的野兽,它有许多通向相同结果的路径。在领导团队迁移到git的过程中,您需要花一些时间学习这些路径,然后为常见场景绘制一个工作流和一份命令备忘单

我建议首先作为一个客户使用它,与客户或类似的工具交谈

关于设计师和使用它的非技术人员的问题,我想说,如果工作流程和命令都有很好的文档记录,那么经过一些培训,他们应该能够跟上速度。他们是否会感激这是另外一个问题!:-)


值得一看的一个工具是,它是一个很棒的团队代码审查工具,似乎有一个git插件。

很多人都在谈论git的使用有多复杂,但如果你坚持一个非常简单的使用模式,git就没有比说RCS更复杂了,这一点毫无价值

我认为,将git用于您自己的区域设置修订控制(对于您可能使用RCS的相同类型的事情)比使用RCS更容易

当然,当您将它用于有大量人员和分支等的大型项目时,它可能会比传统的版本控制系统更加复杂

就我个人而言,我主要用于个人项目和工作中的本地版本控制。我们在工作中使用perforce,他们对我们可以在什么地方登记的分支数量非常严格。我们必须签入完成的、可编译的、可测试的代码块

我经常同时做更大的重构工作和更小的修复工作。我发现这很难应付。但是有了git,我可以为不同的实验、重构和bug修复提供大量的小区域分支

因此,对我来说,git的最大卖点是:

  • 支持区域设置签入(我可以在提交到主存储库之前分步签入我的工作)
  • 轻松方便地创建大量区域分支并在它们之间切换
最后一点的原因是git将所有分支保持在同一个目录中,因此您可以使用git命令在它们之间交换,并保持不变。我喜欢这样做,因为这意味着我不必每次分支时都为新目录的IDE设置配置文件,也不必浪费大量的空间牧场。

吉特的故事是一个故事