迁移到 Git 的八个理由

虫虫 发布于 2012/02/04 16:33
阅读 21K+
收藏 59
最近谈到版本控制,所有人都在谈Git。当然随意的谈论并不能让你下定决心迁移到Git。这里列出了八条有分量的理由,让你加入Git阵营。

1. 快速
如果你每移动一下鼠标都要等待五秒,是不是很受不了?版本控制也是一样的,每一个命令多那么几秒钟,一天下来也会浪费你不少时间。Git的操作非常快速,你可以把时间用在别的更有意义的地方。

更多统计数据,请看 www.whygitisbetterthanx.com。

2. 离线工作
在没有网络的情况下如何工作?如果你用SVN或者CVS的话就很麻烦。而Git可以让你在本地做所有操作,提交代码,查看历史,合并,创建分支等等。

3. 回退

人难免犯错。我很喜欢Git的一点就是你可以“undo”几乎所有的命令。你可以用这个功能来修正你刚刚提交的代码中的一个问题或者回滚整个代码提交操作。你甚至可以恢复一个被删除的提交,因为在后端,Git几乎不做任何删除操作。


4. 省心
你有没有丢失过版本库?我有,而那种头疼的感觉现在还记忆犹新。而用Git的话,我就不必担心这个问题,因为任何一个人机器上的版本都是一个完整的备份。

5. 选择有用的代码提交

当你把纽带,冰块还有西红柿一起扔进搅拌机的时候至少有两个问题。第一,搅拌过后,没有人知道之前扔进去了些什么东西。第二,你不能回退,重新把西红柿拿出来。同样的,当你提交了一堆无关的更改,例如功能A加强,新增功能B,功能C修复,想要理清这一堆代码到底干了什么是很困难的。当然,当发现功能A出问题的时候,你无法单独回滚功能A。Git可以通过创建“颗粒提交”,帮你解决这个问题。“staging area”的概念可以让你决定到底那些东西需要提交,或者更新,精确到行。

6. 自由选择工作方式
使用Git,你可以同时和多个远程代码库连接,“rebase”而不是"merge"甚至只连接某个模块。但是你也可以选择一个中央版本库,就像SVN那样。你依然可以利用Git的其他优点。

7. 保持工作独立

把不同的问题分开处理将有助于跟踪问题的进度。当你在为功能A工作的时候,其他人不应该被你还没有完成的代码所影响。分支是解决这个问题的办法。虽然其他的版本控制软件业有分支系统,但是Git是第一个把这个系统变得简单而快速的系统。

8. 随大流

虽然只有死于才随着波浪前进,但是很多时候聪明的程序员也是随大流的。越来越多的公司,开源项目使用Git,包括Ruby On Rails,jQuery,Perl,Debian,Linux Kernel等等。拥有一个强大的社区是很大的优势,有很多教程、工具。

 

原文链接,OSChina原创翻译。

加载中
1
华宰
华宰
@红薯 oschina 用的是什么版本控制啊?
简单代码
简单代码
SVN足够,现在还有什么地方没有网络的?手机上网都不慢了。所谓的高级特性太高级了,基本用不到。
kut
kut
@红薯 : 不算传统了,真正传统是cvs
G.
G.
@红薯 : 老大哥要起带头作用哦. 赶紧换了!
红薯
红薯
我这比较传统,用的还是 svn
1
锅盔
锅盔
SVN用着还可以吧,没有到非要Git的地步,熟悉Git也需要个过程,小作坊的甚至连svn都不用的多的是...
1
微笑的书生
微笑的书生

引用来自“benbenming”的答案

还在使用svn,感觉git还不够诱人。

我理解你,当初我也是这样想的。。。
G.
G.
@无知的TonySeek : 搞定. 谢谢啦! :)
ValueError
ValueError
@G. : 我弄错了…… 看到 SO 上的回答:http://stackoverflow.com/questions/67699/how-do-i-clone-all-remote-branches-with-git#answer-72156
G.
G.
@无知的TonySeek: 谢谢! --mirror 是镜像, 克隆出来的是裸库呀!
ValueError
ValueError
@G. : 用 git clone <path> --mirror 制作镜像就可以了
G.
G.
@无知的TonySeek: 请教一下. 我克隆一个库, 比如 " git clone gser:/gits/p.git ", 默认克隆的是 master 分支, 我要怎么把其它分支也一起克隆过来呢?
下一页
0
用户已屏蔽
用户已屏蔽
原创新闻越来越多了呀
0
用户已屏蔽
用户已屏蔽
话说 过几天研究下GIT
0
坏孩子
坏孩子
作为商业产品的clearcase上面8个理由一个都不满足,但还是要用。。。
ddatsh
ddatsh
十分BS clearcase,唯一的一点好处可能就是可以自动deliver
0
浪客Dandy
浪客Dandy

刚从Git迁移到Mercurial

ddatsh
ddatsh
支持GIT没说的 WIN下最好不要中文命名就行了 tortoisegit的中文更好些
浪客Dandy
浪客Dandy
@阿昭 : 主要就是windows下git支持太差了,各种bug和encoding的问题
Yisen
Yisen
我也是,小团队,迁移到mercurial上了,底层模块也是C写的,速度差不了多少,功能不需要git那么多那么强大,但是更加易用,当然最方便的是共享非常简单
无名
把文中的git替换成hg就是原因了。 另外hg使用简单,windows上原生支持。
阿昭
阿昭
为什么?git有什么不好的吗?还是Merurial有什么特点?
0
benbenming
benbenming

还在使用svn,感觉git还不够诱人。

0
Jeky
Jeky
项目现在用Git,不过我怀念SVN
返回顶部
顶部