第二章:Git的导入

写在前面:本文内容来自《GitHub入门与实践》。写这篇文章的目的在于,方便大家能有一个系统的GitHub学习教程。全文由本人手打而成,请勿随意转载。如有侵权,请联系我,我会立刻删除这篇文章。

  Git仓库管理功能是GitHub的核心。因此,使用GitHub之前必须先掌握Git的相关知识,同时本地的设备还要安装Git的环境。本章我们将为大家讲解使用Git所需的知识及各种设备。

  2.1诞生背景

  Git属于分散型版本管理系统,是为版本管理而设计的软件。

  Linux的创始人Linus Torvalds在2005年开发了Git的原型程序。当时,由于在Linux内核开发中使用的既有版本管理系统的开发方许可证发生了变更,为了更换新的版本管理系统,Torvalds开发了Git。

  Linux内核的更新速度在全世界也算首屈一指。因此,势必需要一个功能强、性能高的版本管理系统来提高开发速度。

  在当时的开源环境下,虽然已经有数款版本管理软件被开发出来。但功能和性能都差强人意。加之Git是由Linus Torvalds亲自着手开发的,可以说在功能与性能方面无可挑剔。程序员们愿意接受Git,很大程度上取决于这个背景。

  笔者在从Subversion改用Git时,也对其强大的功能和性能感到震惊。Git功能多到夸张,让人觉都至今都没能彻底掌握它。同时,它大幅度削减了笔者花在版本管理系统上的时间、现在如果没有Git,软件开发恐怕会是一件非常痛苦的事情。

  在开发之初,Git由于其艰涩难懂,只有部分黑客愿意使用。但随着众多开发者的共同努力。现在它已被全世界的程序员们所采用。

  2.2什么是版本管理

  版本管理就是管理更新的历史记录。它为我们提供了一些在软件开发过程中必不可少的功能,例如记录一款软件添加或更改源代码的过程,回滚到特定阶段、恢复误删除的文件等。

  在Git出现以前,人们普遍采用Subversion等集中型版本管理系统,而现在Git已经成为了主流。由于GitHub的普及,想必世界上使用Git的人会越来越多。因此要学习版本管理的各位,建议您选择Git。

  集中型与分散型

  刚才我们提到版本管理系统分为Subversion这类集中型的与Git这类分散型的,下面就为各位简单说明一下二者的不同点。

  集中型

  以Subversion为代表的集中型,会如图2..1所示将仓库集中存放在服务器之中,所以只存在一个仓库。这就是为什么这种版本管理系统会被称作集中型。

  集中型将所有数据集中存放在服务器当中,有便于管理的优点。但一旦开发者所处的环境不能连接服务器,就无法获取新的源代码,开发也就无法进行。服务器宕机时也是同样的道理,而且万一服务器故障导致数据消失,恐怕开发者就再也见不到最新的源代码了。

  集中型

  分散型

  图2.2是以Git为代表的分散型的示意图。如图中所示,GitHub将仓库Fork就是将GitHub的某个特定仓库复制到自己的账户下。Fork出的仓库与原仓库示两个不同的仓库,开发者可以随意编辑。

  分散型

  如图所示,分散型拥有很多个仓库,相对而言稍显复杂。不过,由于本地的开发环境中就有仓库,所以开发者不必连接远程仓库就可以进行开发。

  图中只是显示了一般的使用流程。实际上,所有仓库之间都可以进行push和pull。即使不通过GitHub,开发者A也可以直接向开发者B的仓库进行push和pull。因此在使用前如果不事先制定规范,初学者往往会搞不清最新的源代码保存在哪里,导致开发失去控制。不过不用担心,只要各位随着本书的讲解亲自动手尝试,想掌握要领并不是一件难事。

  集中型和分散型哪个更好

  要说集中型和分散型哪个更好,其实双方都有各自优缺点,需要看具体情况而定。不过,随着Git与GitHub的普及,今后使用分散型的开发者将会占大多数。只要规则制定得当,分散型同样能像集中型那样进行管理。

  有些人在学习版本管理的相关知识时,认为该从相对简单的集中型入手,再循序渐进学习分散型。但笔者认为,今后用到集中型的机会很少,所以不必特地绕个弯路。

  同样,建议想给团队导入版本管理系统的读者选择GitHub与Git.。如果软件开发进行到一半再从集中转型为分散型,不担心需要支付高额的费用,还要让开发者花费大量的精力与金钱去重新学习。考虑到今后的各种机遇与挑战,从一开始就选择分散型,必定时各位成功路上的关键一步。

  只要脑海中掌握了多个仓库并存的概念,学习分散型并不是什么难的事。而且对于刚刚接触这方面知识的人来说,由于没有先入为主的干扰,应该容易接受这一概念。

  2.3安装

  Mac与Linux

  最近的Mac中都预装了Git。而各版本的Linux中也都以软件包(Package)的形式提供给了用户了,所以各位可以直接使用。关于这两个环境特有的详细安装方法,由于篇幅关系恕不阐述。

  Windows

  在Windows环境中,最简单快捷的方法是使用msysGit。请按照Downloads的向导下载安装包。

  组件选择

  在图2.3的页面中选择需要的组件。由于所有必要组件都已默认勾选,大可直接进入下一步。

  设置环境变量

  在图2.4的页面中,可以设置调用Git的环境。本书的讲解只会用到msysGit中附属的Git Bash命令提示符,所以请选择最上面的Use Git Bash only,然后进行下一步。

  图2.3

 

环境变量的设置

 

换行符的处理

在图2.5所示的页面中,选择换行符的相关设置。

GitHub中公开的代码大部分都是以Mac或Linux中LF(Line Feed)换行。然而由于Windows中是以CRLF(Carriage Return + Line Feed)换行的,所以在非对应的编辑器中将不能正常显示。

Git可以通过设置自动转换这些换行符。使用Windows环境的各位,请选择推荐的“Checkout Windows-style,commit Unix-style line endings”选项。换行符在签出时会自动转换为CRLF,在提交时则会自动转换为LF。

Git Bash

顺利安装好msysGit之后,Git Bash会作为一个应用程序添加进系统,接下来请启动它。双击之后,会弹出一个名为Git Bash的命令提示符,它辅助于msysGit。如果各位是按照本书中介绍的流程进行安装,那么git命令只能在Git Bash中使用,在Windows附属的命令提示符中则无法运行。

2.4初始设置

设置姓名和邮箱地址

首先来设置使用Git时的姓名和邮箱地址。名字请用英文输入。

$ git config –global user.name “Firstname Lastname”

$ git config –global user.email “[email protected]

这个命令,会在”~/.config”中以如下形式输出设置文件。

想更改这些信息时,可以直接编辑这个设置文件。这里设置的姓名和邮箱地址会用在Git的提交日志中。由于在GitHub上公开仓库时,这里的姓名和邮箱地址会随着提交日志一同被公开,所以请不要使用不便公开的隐私信息。

在GitHub上公开代码后,前来参考的程序员可能来自世界任何地方,所以请不要使用汉字,尽量用英文进行描述。当然,如果您不想使用真名,完全可以使用网络上的昵称。

提高命令输出的可读性

$ git config --global color.ui auto

这样一来,各种命令的输出就会变得更容易分辨。

猜你喜欢

转载自www.cnblogs.com/mymym/p/9989413.html
今日推荐