1、首先git是目前世界上最先进的分布式版本控制系统之一。所谓版本控制是针对工作中一些普遍的现象的。
比如,你写一份文档,期间,不断的改善,每次修改都会进行备份,久而久之,会有很多版本的同一份文档,但是,某个时候又突然想查看之前写的内容,又发现不知道在哪一版的,这让人很头疼,还有诸如此类的很多问题。反正就是没有一个统一管理管理版本的有力的工具。
2、集中式版本管理和分布式版本管理的区别
集中式版本管理控制系统,版本库是集中存放在中央服务器上的,干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,活做完了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。而且集中式需要联网,对带宽也有要求。如下图。
分布式版本控制系统根本没有“”中央服务器“”,每个人的电脑上都是一个完整的版本库,这样,工作的时候,就不需要联网了,因为版本库就在自己电脑上,那么怎么多个人合作,互相把修改推送给对方呢?通常,分布式版本控制系统通常有一台充当“中央服务器”的电脑,但是这台电脑的作用仅仅是用来方便大家“交换”大家的修改,没有也一样干活,知识交换修改 不方便而已。如下图
3、在windows上安装git
下载msysgit只需要单独下载一个exe安装程序,其他的都不用装。下载地址https://git-for-windows.github.io。安装完成后,在开始菜单里面找到“git”->"git bash",弹出如下所示类似于命令行窗口的东西,就说明git安装成功
安装完成之后,还需要最后一步设置,在命令行输入:
$git config --global user.name "your name"
$git config --global user.email "email@example.com"
4创建版本库
版本库又名仓库,英文名repository,可以简单理解成一个目录,这个目录里面所有文件都可以被git管理起来,每个文件的修改、删除,git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”
创建版本库非常简单,首先,选择一个合适的地方,创建一个空目录,如下命令:
$mkdir learngit
$cd learnggit
$pwd
/Users/michael/learngit
第二步,通过git init命令把这个目录变成git可以管理的仓库
$git init
Initialized empty Git repository in /User/michael/learngit/git/
注意,所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,git也是,像图片、视频这些二进制文件,虽然也能有由版本控制系统管理,但是没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100kb,变成了120kb,具体改了什么,版本控制系统不知道。
第三步添加文件到git仓库,分两步:
。。。第一步,使用命令git add <file>,注意,可反复多次使用,添加多个文件
。。。第二步,使用命令git commit,完成
5、要随时掌握工作区的状态,使用git status命令
如果git status 告诉你文件被修改过,用git diff可以查看修改内容,继续使用add和commit提交修改后的内容
6、HEAD指向的版本就是当前版本,因此,git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog 查看命令历史,以便确定回到未来的哪个版本
7、git的工作区就是可以看得到,比如上面创建的learngit文件夹就是一个工作区。工作区有一个隐藏的.git,这个不算工作区,而是git的版本库。git的版本库里存了很多东西,其中最重要的就是称为stage的暂存区,还有git为我们自动创建的第一个分支,master,以及指向master的一个指针HEAD.
前面我们在将文件往git版本库里面添加的时候,第一步,git add就是把文件添加进去,实际上就是把文件修改添加到暂存区,第二步是用commit提交更改,实际上就是把暂存区的所有内容提交到当前分支