Git的学习理解
什么版本控制系统(VCS)
//自我理解:一个让你可以让你有效管理平行宇宙中的仓库的一个工具
版本控制系统(version control system),是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
有哪些版本控制工具,都有啥区别
//自我理解:直观上就是是不是要联网才能工作,原理上就是版本库的集中与分布
1.集中式版本控制系统
代表:SVN CVS ClearCase
集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。
2.分布式版本控制系统
代表:Git BitKeeper
分布式版本控制系统根本没有 “中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件 A,你的同事也在他的电脑上改了文件 A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。而为了减少点对点的传递修改的麻烦,,分布式版本控制系统通常也有一台充当 “中央服务器” 的电脑,但这个服务器的作用仅仅是用来方便 “交换” 大家的修改,没有它大家也一样干活,只是交换修改不方便而已。
为什么是Git
Git的实际操作学习
必先利其器
Git
Git手册
有关远程仓库
- GitHub
- 自己的Git服务器
开始实操
创建版本库
1.repository
版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
2.创建
- 为仓库建立文件夹,之后该文件夹的名称就是Repo的名称
- cd 到该目录下
- git init,如果发现目录下多了一个.git的目录,那仓库就建好了
- 注:并非一定要空文件夹,不管空不空之后Git都会把该文件夹示为一个Repo来管理
- 注:所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。版本控制系统可以告诉你每次的改动,比如在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。
理解修改
所有我们在工作区完成的每一步工作,使工作区的版本与版本库中的版本形成了差异,这就是一个修改。如果我们需要保存这些修改,更新版本,那就需要提交这些修改,也就是我们完成的工作。而Git最有趣的地方也就是这里,它并不关心现有的文件,只关心文件发生的变化,也就是Git管理的是修改,而不是文件。要理解这个得先实际操作一下。
理解git add 和 git commit
1.工作区与暂存区
这里还没提到分支,关键是理解工作区的修改是如何完成最终版本库中的修改
- 工作区
我们实际直接操作的目录下 - 版本库
工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
2.add 和 commit
第一步是用git add把做出的修改添加进去,实际上就是把修改添加到暂存区;
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
注:需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。也就是可以多次add,一次commit
管理修改
1.撤销修改
- 撤销工作区中的修改
- 撤销暂存区中的修改
- 撤销版本库中的修改-->版本回退
2.删除文件

浙公网安备 33010602011771号