Git简介
简介
git是目前世界上最先进的分布式版本系统控制系统
解决问题:
记录每次文件的改动同时可以让他人协作编辑,避免了多文件的混乱
诞生简述:
Linux代码库太大所以为了管理Linux社区Linus用2周写了一个分布式版本管理系统就是Git
集中式与分布式
版本控制系统(VCS)
集中式
集中式版本控制系统,版本库集中放在中央服务器,每次工作的时候必须先从服务器获取新版本到自己的电脑然后才能开始工作,然后再将自己的活上交给服务器,需要不断的依靠于中央服务器的交互来更新版本。
集中式版本控制系统最大的毛病就是必须联网才能工作,受限于网速、宽带这样的网络因素。
其他版本
CVS作为最早的开源而且免费的集中式版本控制系统,直到现在还有不少人在用。由于CVS自身设计的问题,会造成提交文件不完整,版本库莫名其妙损坏的情况。同样是开源而且免费的SVN修正了CVS的一些稳定性问题,是目前用得最多的集中式版本库控制系统。
除了免费的外,还有收费的集中式版本控制系统,比如IBM的ClearCase(以前是Rational公司的,被IBM收购了),特点是安装比Windows还大,运行比蜗牛还慢,能用ClearCase的一般是世界500强,他们有个共同的特点是财大气粗,或者人傻钱多。
微软自己也有一个集中式版本控制系统叫VSS,集成在Visual Studio中。由于其反人类的设计,连微软自己都不好意思用了。
分布式
分布式版本控制系统则更本没有所谓的中央服务器,每个人电脑上就是一个完整的版本库,这样工作的时候也不需要联网了,因为版本库就在你自己的电脑上。而协作的时候彼此只需要将修改了的文件推给需要的对方就可以互相看到对方的修改了
和集中式相比,分布式的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。
Git
Git本地仓库不仅有代码库还有历史库,在本地就可以查看历史记录,SVN的历史版本库在中央服务器,每次对比和提交代码需要交互中央服务器才能实现。可以脱机(断网)环境下工作,不用担心中央服务器挂掉。
在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。
其他版本
分布式版本控制系统除了Git以及促使Git诞生的BitKeeper外,还有类似Git的Mercurial和Bazaar等。这些分布式版本控制系统各有特点,但最快、最简单也最流行的依然是Git!
Git安装
在Linux上面安装Git
输入git观察是否已经安装了Git
$ git
The program 'git' is currently not installed. You can install it by typing:
sudo apt-get install git
如果你用Debian或Ubuntu Linux,通过一条sudo apt-get install git
就可以直接完成Git的安装,非常简单。
如果是其他Linux版本,可以直接通过源码安装。先从Git官网下载源码,然后解压,依次输入:./config
,make
,sudo make install
这几个命令安装就好了。
在MacOS上面安装Git
一是安装homebrew,然后通过homebrew安装Git,具体方法请参考homebrew的文档:http://brew.sh/。
第二种方法更简单,也是推荐的方法,就是直接从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装了。
Xcode是Apple官方的IDE,功能强大,是开发Mac和iOS App的必选装备,而且免费~
在Window上面安装Git
从Git官网直接下载安装程序,然后按默认选项安装即可。
从菜单找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
从源码安装
首先,你需要安装它所依赖的库:curl
,zlib
,openssl
,expat
和libiconv
。如果你使用的系统有安装yum或apt-get可以直接使用命令满足编译和安装所需要的依赖
$ sudo yum install curl-devel expat-devel gettext-devel \
opensll-devel perl-devel zlib-devel
$ sudo apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \
libz-dev libssl-dev
为了添加其他的文档,你还需要docbook2X
$sudo yum install asciidoc xmlto docbook2X
$sudo apt-get install asciidoc xmlto docbook2X
编译安装Git
tar -zxf git-2.0.0.tar.gz
cd git-2.0.0
make configure
./cinfigure --prefix=/usr
make all doc info
sudo make istalll-doc install-html install-inf
安装完成之后就可以通过Git自身来获取更新了
git clonw git://git.kernel/pub/scm/git/git.git
Git配置
git config
的工具可以用来获取和设置配置变量,包括外观和操作的方方面面。可以存储在3个位置:
-
/etc/gitconfig文件:包括用户和仓库的值,传入
--system
的选项,它将从该文件中读写配置。 -
~/.gitconfig或/.config/git/config文件:针对你自己,可以通过传入–global是Git从中读写配置
-
当前仓库的Git目录(也就是.git/config)中的config文件:针对单个仓库
注意:
每一级都会覆盖上一级的设置,因此.git/config中值是优于/etc/gitconfig中的值。
用户设置
安装完成后,还需要最后一步设置,在命令行输入:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
$ git config --list // 查看当前项目的 git 配置信息(会先列出全局配置,最下面列出的是当前项目的配置)
使用git config --list
进行查询可以看到自己的用户名和邮箱
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。你也许会担心,如果有人故意冒充别人怎么办?这个不必担心,首先我们相信大家都是善良无知的群众,其次,真的有冒充的也是有办法可查的。
注意:git config
命令的--global
参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
编辑器修改
git config --glogal core.editor 编译器名称(emacs)
//在X86系统上:
git config --glogal core.editor "'C:/.../.../XXX.exe' -multiInst -nosession"
//在X64系统上:
git config --glogal core.editor "'C:/.../.../XXX.exe' -multiInst"
没有配置的时候Git会使用默认的编辑器
获取帮助
git help <verb>
git <verb> --help
man git-<verb>
//such as:
git help config
如果你需要人工帮助,可以试试Freenode IRC上的#git和#github频道