Git 快速入门

645 查看

一、认识Git

Git是什么?

一种分布式版本控制系统。

集中式版本控制系统是什么?

版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。

集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,会把人憋死。

分布式版本控制系统是什么?

分布式版本控制系统与集中式版本控制系统有何不同呢?首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

和集中式版本控制系统相比,分布式版本控制系统的安全性要搞很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都无法干活了。

在实际使用分布式版本系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。

当然,Git的优势不单是不必联网这么简单,还有它极其强大的分支管理,把SVN等远远抛在了后面。

二、安装Git

在Windows上安装Git

msysgit是Windows版的Git,从 官网 下载,然后按默认选项安装即可。

安装完成后,在开始菜单里找到Git -> Git Bash,一个类似命令行窗口的东西,就说明Git安装成功!

安装完成后,还需要最后一步设置,在命令行输入:

$ git config --global user.name "Your Name"
$ git config --global user.email "Your Email"

因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。

注意git config命令的--global参数,用了这个参数,表示你这台机器行所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

三、创建版本库

版本库,又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

1.创建版本库的步骤

第一步,选择一个合适的地方,创建一个空目录:

$ mkdir myrepo
$ cd myrepo
$ pwd
/c/Users/Roger/myrepo

第二步,通过git init命令把这个目录变成Git可以管理的仓库:

$ git init
Initialized empty Git repository in c:/Users/Roger/myrepo/.git/

至此,仓库创建完成且提示你是这是一个空的仓库(empty Git repository)。当然,不一定必须在空目录下创建Git仓库,选择一个已经有东西的目录也是可以的。

2.把文件添加到版本库

首先要明确,所有的版本控制系统,其实只能跟踪文本文件的改动,比如txt文件,网页,所有的程序代码等等,Git也不例外。版本控制系统可以告诉你每次的改动,比如在第几行增删修改了什么。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100kb改成了120kb,但到底改了什么,版本控制系统不知道,也无法知道。

不幸的是,Microsoft的Word格式是二进制格式,因此,版本控制系统是没法跟踪Word文件的改动的。

因为文本是有编码的,比如中文有常用的GBK编码,日文有Shift_JIS编码,如果没有历史遗留的问题,强烈建议使用标准的UTF-8编码,所有语言使用同一种编码,既没有冲突,又被所有平台所支持。

把文件添加到版本库也是很简单的事情。

首先,我们编写一个readme.txt文件,内容如下:

Git is a version control system.
Git is free software.

注意,该文件一定要放在myrepo目录下(子目录也行)。

接下来,把这个文件放到Git仓库。这个过程只需要两步。

第一步,用命令git add告诉Git,把文件添加到仓库:

$ git add readme.txt

执行上面的命令,没有任何的显示,这就对了!Unix的哲学是“没有消息就是好消息。”,说明添加成功。

第二步,用命令git commit告诉Git,把文件提交到仓库:

$ git commit -m "wrote a readme file"
[master (root-commit) dc767dc] wrote a readme file
1 file changed, 2 inserttions(+)
create mode 100644 readme.txt

git commit命令中-m后面输入的是本次提交的说明,可以输入任意内容,建议填写有意义的内容,方便日后从历史记录里快速找到改动记录。

git commit命令执行成功后会告诉你,1个文件被改动(新添加的readme.txt文件),插入了两行内容(readme.txt有两行内容)。

为什么Git添加文件需要add,commit这么两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件。比如:

$ git add file1.txt
$ git add file2.txt
$ git add file3.txt
$ git commit -m "add 3 files."


详细教程请戳这里:Git教程 - 廖雪峰的官方网站