为什么选择 Git

虽然市场上有几十种不同的版本控制系统,一些世界上最著名的项目(例如 Linux 内核, Ruby on Rails,或是jQuery)都选择了使用 Git 作为它们的版本控制系统。为什么它们都选择 Git 呢?

节省时间

Git 运行快速。尽管我们在这里讨论的只是运行一个命令所需要的几秒钟,但是把它累积在你的日常工作中就是一个不小的飞跃了。它可以节省那些不必要的等待时间,并且去完成其它一些有意义的工作。

离线工作

当你不能联机远程中央仓库时你该怎么工作呢?对于一个像 Subversion 或者 CVS 的集中式版本控制系统来说,如果你没有连接到中央仓库,你就不能很好的工作。如果使用 Git ,几乎所有的东西都可以简单地在你的本地机器上完成。例如进行提交,查看你的项目历史,合并或者创建分支等等。至于在哪里工作?什么时候工作? Git 不会给你施加任何限制。

撤销错误操作

每个人都会犯错,而使用 Git 的最大好处就在于,几乎在所有的情况下你都能 “撤消” 你的错误操作。比如如果你忘记了把一个小小的改动包含进来,因此你要改正你的上个提交。又或者你想要撤销一个完整的提交,因为这个功能有可能是不必要的。当发生了很严重的错误时,你甚至可以通过恢复引用日志来让一个提交不可见。你可以放心,Git 几乎很少真正地删除数据。

可靠性高

不用担忧,你不会在 Git 中搞砸任何东西,这种感觉是不是非常好?在你的 Git 项目中的每一个团队成员都克隆了整个项目在他们的本地计算机,这个本地克隆也可以看作一个完整的项目备份。除此之外, Git 上的操作几乎都是进行数据添加,几乎从不删除数据。这意味着丢失数据或是仓库损坏的情况几乎不可能发生。

让提交更有意义

只有包含了相关的改动的提交才有意义。想象一下,如果一个提交中包括一个新添加的功能 A ,还包括功能 B 的一部分改动,并且还存在一个对错误 C 的修复。这样其他的团队成员就很难理解这个提交的意图,而且当其中的一个改动出现了错误,撤销起来也非常麻烦。利用它独一无二的 “暂存区(staging area)” 概念,Git 可以帮助你打造很细微和精准的提交。你可以准确地判断哪些更改将被包含在你的下一个提交中,即使只是一行改动。Git 真正提高了对版本控制的实用性。

更高的自由度

当使用 Git 工作时,你可以定义一个对项目和团队有意义的工作流程。使用 Git 也不需要其它的要求。你可以连接多个远程仓库,使用 rebase 来替代合并,或者在需要时可以使用子模块。当然,你也可以简单地像 Subversion 那样仅仅使用一个远程的集中式仓库。无论你使用什么样的工作流程,它都有各种各样的优点。

避免混乱

关注点分离可以更明确地了解事情的进程。当你工作在功能 A 上时,不应该有任何人受到你未完成的代码的影响。如果那个功能是完全没有必要的话呢?或是完成了对它的一些改动提交后,你注意到你完全错了呢?分支功能就可以解决这些问题。当然其他版本控制系统也都有分支,但是 Git 真正的把它改进地更快速,更简单了。

顺应潮流

聪明的开发人员应该顺应潮流。Git 正在被越来越多的知名公司和开源项目所使用,如 Ruby On Rails,jQuery,Perl,Debian,Linux 内核等等。拥有一个大型的用户群体是一个很大优势,因为往往会存在很多系统去推动他的发展。大量的教程,工具和服务,这让Git更加具有吸引力。

Giveaways. Cheat Sheets. eBooks. Discounts.
And great content from our blog!

About Us

As the makers of Tower, the best Git client for Mac and Windows, we help over 100,000 users in companies like Apple, Google, Amazon, Twitter, and Ebay get the most out of Git.

Just like with Tower, our mission with this platform is to help people become better professionals.

That's why we provide our guides, videos, and cheat sheets (about version control with Git and lots of other topics) for free.