一种分布式版本控制系统。git
版本库是集中存放在中央服务器的,而干活的时候,用的都是本身的电脑,因此要先从中央服务器取得最新的版本,而后开始干活,干完活了,再把本身的活推送给中央服务器。中央服务器就比如是一个图书馆,你要改一本书,必须先从图书馆借出来,而后回到家本身改,改完了,再放回图书馆。github
集中式版本控制系统最大的毛病就是必须联网才能工做,若是在局域网内还好,带宽够大,速度够快,可若是在互联网上,遇到网速慢的话,会把人憋死。安全
分布式版本控制系统与集中式版本控制系统有何不一样呢?首先,分布式版本控制系统根本没有“中央服务器”,每一个人的电脑都是一个完整的版本库,这样,你工做的时候,就不须要联网了,由于版本库就在你本身的电脑上。既然每一个人电脑上都有一个完整的版本库,那多我的如何协做呢?比方说你在本身电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,大家俩之间只需把各自的修改推送给对方,就能够互相看到对方的修改了。服务器
和集中式版本控制系统相比,分布式版本控制系统的安全性要搞不少,由于每一个人电脑里都有完整的版本库,某一我的的电脑坏掉了没关系,随便从其余人那里复制一个就能够了。而集中式版本控制系统的中央服务器要是出了问题,全部人都没法干活了。分布式
在实际使用分布式版本系统的时候,其实不多在两人之间的电脑上推送版本库的修改,由于可不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。分布式版本控制系统一般也有一台充当“中央服务器”的电脑,但这个服务器的做用仅仅是用来方便“交换”你们的修改,没有它你们也同样干活,只是交换修改不方便而已。网站
固然,Git的优点不单是没必要联网这么简单,还有它极其强大的分支管理,把SVN等远远抛在了后面。编码
msysgit是Windows版的Git,从 官网 下载,而后按默认选项安装便可。spa
安装完成后,在开始菜单里找到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都能跟踪,以便任什么时候刻均可以追踪历史,或者在未来某个时刻能够“还原”。
第一步,选择一个合适的地方,建立一个空目录:
$ 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仓库,选择一个已经有东西的目录也是能够的。
首先要明确,全部的版本控制系统,其实只能跟踪文本文件的改动,好比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教程 - 廖雪峰的官方网站