了解 Git
Git 是一个免费开源的分布式版本控制系统(DVCS),它旨在快速、高效地处理任何规模和范围的项目。
Git 是由 Linux 创建者 Linus Torvalds 发明的,用于支持庞大的、不同的 Linux 开发人员群体,但 Git 的受欢迎程度与 http://github.com 关系更紧密,Git 已存在多年,但直到 GitHub 受欢迎程度激增之后,才在 Linux 社区之外获得广泛认可。GitHub 允许你免费托管开源项目,它还提供简单的钩子和友好的用户体验,使 Git 更容易使用。
Mac Homebrew 等其他项目也对 Git 投入很深,Homebrew 允许你在 Mac 上安装开源软件包,构建和管理这些公式的工具利用了 Git,用于差异工具、制作补丁、管理资源,以及通过拉取请求提交新的和更新的包。
Git 与其他 DVCS
另外两个最受欢迎的 DVCS 选择是 Mercurial 和 Bazaar,Mercurial 有命令行工具 hg(以汞的化学符号命名),而 Bazaar 的命令行工具是 bzr。
Mercurial 与许多开源项目相关联,Ubuntu Linux 背后的 Canonical 公司使用 Bazaar,开发人员通常需要熟悉 Git、Mercurial 和 Bazaar。
开发人员使用的 DVCS 通常由开发人员参与的组织决定,而不是由给定的一组功能决定,Git、Mercurial 和 Bazaar 都具有基本功能,例如分支、标签、合并以及不依赖于中央服务器,目前使用 Git 的开发人员可能会在一年后在 Mercurial 管理的另一个项目开始工作。
关键的挑战是了解每个工具的命令和语言的差异,例如,Mercurial 中的 hg revert 意味着回滚当前更改,恢复为正式版本。git revert 意味着添加一个反转先前编辑的新提交,Git 有一个命令来支持像 Mercurial 这样的更改,但它有一个不同的名称。
Git 与非分布式 SCM
几个非分布式源代码管理系统(SCM)早于 DVCS 并仍在使用中:
Subversion
CVS(并发版本系统)
许多专有版本控制系统目前仍在大量使用,例如:
Rational ClearCase
Perforce
Visual SourceSafe
这些专有产品通常与其他软件开发工具捆绑在一起,因此在某些软件开发商店中根深蒂固。
与 DVCS 模型相反,这些系统中的关键因素是它们依赖中央服务器来保存跟踪版本和分支所涉及的所有关键数据,从本质上讲,开发人员在家中进行多次提交,与此中央服务器断开连接,然后将其添加到服务器,这不是内置功能,其中一些系统增加了支持此类功能的特性,但它并不是其本质的核心部分。
为了说明 DVCS 和非 DVCS 的 SCM 系统之间的区别,请考虑两个人如何分别独立工作,在使用 DVCS 时如何在某个遥远的地方会面,比如在游轮旅行中,并共享提交。共享提交将具有与中央服务器上相同的权限,使用非分布式 SCM 时,这两个人只能共享代码差异,而不能提交,为了使提交成为正式提交,必须在到家并访问中央服务器时将提交发布到中央服务器。
DVCS 的固有优势
像 Git 这样的工具的内置优势在于每个拥有副本的人都拥有重建项目所需的一切,如果中央服务器崩溃且所有数据都丢失,则可以将任何远程副本指定为正式副本,因为它将具有足够的信息以继续,如果开发人员没有最新的提交,则会出现唯一的差异。
上一篇:了解 REST