Git学习笔记
带你走进Git的世界
Git是目前世界上最先进的分布式版本控制系统(没有之一)
所谓分布式版本控制系统,举例如下:
版本 | 文件名 | 用户 | 说明 | 日期 |
---|---|---|---|---|
1 | service.doc | 张三 | 删除了软件服务条款5 | 7/12 10:38 |
2 | service.doc | 张三 | 增加了License人数限制 | 7/12 18:09 |
3 | service.doc | 李四 | 财务部门调整了合同金额 | 7/13 9:51 |
4 | service.doc | 张三 | 延长了免费升级周期 | 7/14 15:17 |
一、Git简介
1.1 Git的诞生
Git是由Linus花了两周时间自己用C语言写了一个分布式版本控制系统
1.2 分布式vs集中式
- 集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆
-
- 最大缺点:必须联网才能工作
-
- 其次,安全性较低,当中央服务器出了问题,所有人都没法干活了
- 分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库。当你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了
-
- 优点:避免了集中式的缺点
二、在Windows上安装Git
从Git官网直接下载安装程序,然后按默认选项安装即可
安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
安装完成后,还需要最后一步设置,在命令行输入:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址
三、版本库的创建
版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”
假如你想管理某个目录里面的所有文件
- 你需要通过命令行cmd进入该目录下,通过
git init
命令把这个目录变成Git可以管理的仓库:
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/
如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文
- 你会发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了
- 如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用
ls -ah
命令就可以看见
四、工作区和暂存区
工作区(Working Directory):就是你在电脑里能看到的目录,比如我的supermall(vue.js项目)文件夹就是一个工作区
版本库(Repository):工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区。还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD
所以,git add .
命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit -m '注释'
就可以一次性把暂存区的所有修改提交到分支(master)
五、远程仓库
5.1 从远程仓库克隆到本地库
GitHub这个网站就是提供Git仓库托管服务的,只要注册一个GitHub账号,就可以免费获得Git远程仓库
远程库创建好后,可以用命令git clone
克隆一个本地库
$ git clone