前言
在这段时间的工作中一直都是用Git作为版本控制,只是知道简单的几个命令,没有去了解它的内部原理。
现在的公司基本上都是用Git作为版本控制,当然也有SVN的。
Git是目前世界上最先进的分布式版本控制系统。那什么是版本控制系统呢?
如果你用Microsoft Word写过长篇大论,那你一定有这样的经历:
想删除一个段落,又怕将来想恢复找不回来怎么办?
有办法,先把当前文件“另存为……”一个新的Word文件,再接着改,改到一定程度,
再“另存为……”一个新文件,这样一直改下去,最后你的Word文档变成了这样:
- 过了一周,你想找回被删除的文字,但是已经记不清删除前保存在哪个文件里了,
只好一个一个文件去找,真麻烦。看着一堆乱七八糟的文件,想保留最新的一个,
然后把其他的删掉,又怕哪天会用上,还不敢删,真郁闷。 - 更要命的是,有些部分需要你的财务同事帮助填写,于是你把文件Copy到U盘里
给她(也可能通过Email发送一份给她),然后,你继续修改Word文件。一天后,
同事再把Word文件传给你,此时,你必须想想,发给她之后到你收到她的文件期间,
你作了哪些改动,得把你的改动和她的部分合并,真困难。 - 于是你想,如果有一个软件,不但能自动帮我记录每次文件的改动,还可以让同事
要把文件传来传去。如果想查看某次改动,只需要在软件里瞄一眼就可以,岂不是很方便?
协作编辑,这样就不用自己管理一堆类似的文件了,也不需要把文件传来传去。如果想查看
某次改动,只需要在软件里瞄一眼就可以,岂不是很方便? - 于是你想,如果有一个软件,不但能自动帮我记录每次文件的改动,还可以让同事协作
编辑,这样就不用自己管理一堆类似的文件了,也不需要把文件传来传去。如果想查看某次
改动,只需要在软件里瞄一眼就可以,岂不是很方便? - 这个软件用起来就应该像这个样子,能记录每次文件的改动:
一、Git简介
1.1 Git概述
Git是目前世界上最先进的分布式版本控制系统。可以有效、高速的处理从很小到非常大
的项目版本管理。
1.2 Git和SVN的区别
1)SVN
- SVN是集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,
用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干
完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要
改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。
- 集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽
够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需
要5分钟,这还不得把人给憋死啊。
2)Git
- Git是分布式版本控制系统,分布式版本控制系统根本没有“中央服务器”,每个人
的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本
库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协
作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,
你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
3)对比
和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑
里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以
了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修
改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病
了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”
的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干
活,只是交换修改不方便而已。
- 当然,Git的优势不单是不必联网这么简单,后面我们还会看到Git极其强大的分支管理,
把SVN等远远抛在了后面。
二、Windows中安装Git
2.1 安装和配置Git
- 从Git官网下载一个Git安装包,官网地址为:http://git-scm.com/downloads
- 点击安装包git.exe,默认安装即可
- 在安装过程中有一步骤需要注意,在此说明:
在设置path时,选择第二项,这样安装git成功后,环境变量中便会有git的path配置,
无需再手动配置,安装完成后,便可以在cmd中直接输入命令,查看git是否安装成功。 - Git之配置环境变量(我的安装Git后,环境变量中已经有了Git的配置)
- 确认Git是否安装成功
2.2 安装之后的简单配置
安装完成之后会与Git Bash:
说明安装成功了!
安装完成后,还需要最后一步设置,在命令行输入如下:
git config --global user.name "用户名"
git config --gobal user.eamil "邮箱名称"
因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。
设置完成可以使用:git config –list查看配置
注意:git config –global 参数,有了这个参数,表示你这台机器上所
有的Git仓库都会使用这个配置,当然你也可以对某个仓库指定的不同的用户名和邮箱。
三、Linux(CentOS)安装Git
- 1)下载Git安装包
最新的Git源码地址下载:https://www.kernel.org/pub/software/scm/git/
也可以手动下载下来上传至服务器中 - 2)移除旧版本git
centos自带Git,7.x版本自带git 1.8.3.1(应该是,也可能不是)
安装新版本之前需要使用yum remove git卸载(安装后卸载也可以)
[root@Git ~]# git --version ## 查看自带的版本git version 1.8.3.1
[root@Git ~]# yum remove git ## 移除原来的版本
- 3)安装所需软件包
[root@Git ~]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
[root@Git ~]# yum install gcc-c++ perl-ExtUtils-MakeMaker
- 4)下载源码包&安装
[root@Git ~]# cd /usr/opt
[root@Git ~]# wget https://github.com/git/git/archive/v2.16.3.tar.gz
- 5)解压并创建软链接
[root@Git ~]# tar zxxf git-2.7.3.tar.gz
[root@Git ~]# ln -snf git-2.7.3 git
- 6)配置编译安装
[root@Git ~]# cd git
[root@Git ~]# make configure
[root@Git ~]# ./configure --prefix=/usr/git ##配置目录
[root@Git ~]# make profix=/usr/git
[root@Git ~]# make install
- 7)加入环境变量
[root@Git ~]# echo "export PATH=$PATH:/opt/git/bin" >> /etc/profile
[root@Git ~]# source /etc/profile
- 8)检查版本
[root@Git git-2.7.3]# git --version
git version 2.7.3