什么是Git,为什么我想要它?

Spa*_*ner 3 git

我对编程很陌生,但我觉得我已经掌握了它,并且我正在努力学习.我一直在读Git对编程项目绝对至关重要,但我似乎无法弄清楚它实际上是什么的.谷歌也不想告诉我.该网站称它是"分布式版本控制系统".呃......嗯?

有人可以向新手解释这件事是什么以及为什么它如此重要?

Cas*_*bel 5

该网站称它是"分布式版本控制系统".

让我们从版本控制系统的想法开始.它正是它所说的 - 它是一种存储和管理各种版本的东西的方法.这在编程中非常重要,因为在开发项目时,项目将被多次更改,并且访问超过当前版本通常会很有用.它也会被多个人改变; 必须有一些方法来结合每个人的变化.

最简单的版本控制是简单地立即备份整个项目,并在各个开发人员之间传递这些快照或补丁.很明显,你最终会以这种天真的方式陷入困境; 这就是专用版本控制系统的用武之地.

版本控制系统将以智能方式跟踪您的所有历史记录,并允许您浏览该历史记录,查看有关更改的所有内容:它们是什么,由谁创建,以及原因.稍微复杂一些,它们通常会有一些分支的概念(为多个开发人员创建不同的开发线)和合并(将这些分支重新组合在一起).大多数版本控制系统都将提供许多更高级别的功能.仅举一个例子,git有一个名为"bisect"的工具,它允许你在历史记录中进行二进制搜索,以找出引入特定错误的时间.整洁的东西.

版本控制分为两大类:集中式和分布式.在集中式系统中,有一个中央存储库.它包含项目的所有历史记录,任何想要与该历史记录交互的人都必须通过该中央存储库.另一方面,像git这样的分布式系统为每个人提供了历史记录.每个开发人员最终都会得到一个存储库的副本(称为克隆,在git中),这完全是自给自足的.除了作为实际问题之外,没有必要与公共中央存储库进行交互,这是一种发布内容以供其他人查看的方式.这使得多个人同时在同一个项目上工作变得更加简单,可能没有互联网访问权限,并且在每个人自己的存储库中为每个人提供版本控制系统的全部功能,而不是有限的公共中央存储库的功能.

有关如何最终使用像git这样的系统的定性读物,从想要记住历史的基础知识开始,尝试git寓言.

有关该主题的更多一般信息,请尝试维基百科:版本控制.