https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
--转自廖雪峰Git教程 作为学习
百度百科上的解释:
Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。
简单来说,能记录每次文件的改动 。记录什么版本,那个用户,修改了哪些地方以及日期
历史:Linus(Linux系统创始人)花了两周时间自己用C写了一个分布式版本控制系统,这就是Git。Linux系统的源码已经由Git管理了。2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。
CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统,集中式和分布式版本控制系统有什么区别?
集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。并且必须联网才能工作。
分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多。因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。
git安装
安装完后运行git-bash.exe
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
注意git config
命令的--global
参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置
创建版本库
$ mkdir learngit //创建一个叫learngit目录
$ cd learngit //进入该目录
$ pwd //显示当前目录
/Users/michael/learngit //这里是系统显示出来的
第二步: 通过
git init
命令
把这个目录变成Git可以管理的仓库
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/
可以发现当前目录下多了一个.git
的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。如果你没有看到.git
目录,那是因为这个目录默认是隐藏的,用ls -ah
命令就可以看见。
版本控制系统可以告诉你每次关于对文件改动的内容,但是针对图片、视频这些二进制文件只能知道文件大小的变化了。注意:Microsoft的Word格式是二进制格式,因此,版本控制系统是没法跟踪Word文件的改动的。如果要真正使用版本控制系统,就要以纯文本方式编写文件。因为文本是有编码的,强烈建议使用标准的UTF-8编码
添加文件到Git仓库,分两步
readme.txt
文件,随便写点内容。然后将文件放到learngit
目录(你创建的目录)下(子目录也行),因为这是一个Git仓库,放到其他地方Git再厉害也找不到这个文件。
Git is a version control system.
Git is free software.
$ git add readme.txt //用命令git add
告诉Git,把文件添加到仓库 无提示,则证明添加成功
$ git commit -m "wrote a readme file" //用命令git commit
告诉Git,把文件提交到仓库
[master (root-commit) cb926e7] wrote a readme file
1 file changed, 2 insertions(+)
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 file3.txt
$ git commit -m "add 3 files."
小结
现在总结一下今天学的两点内容:
初始化一个Git仓库,使用git init
命令。
添加文件到Git仓库,分两步:
-
第一步,使用命令
git add <file>
,注意,可反复多次使用,添加多个文件; -
第二步,使用命令
git commit
,完成。