1. Git初识
1.1 引入
场景复现:
我们在工作的时候进行设计文档,在一直拉扯的过程中,我们对文档进行了多次修改v1,v2,v3......,但是最后需要的却是文档的v1版本;但是我们当前的版本却是v10版本,随着版本的增多,维护好版本是很有挑战性的;
所以针对我们一个文档的多个版本的管理,我们引入了版本控制器,对一个文件的多个版本进行管理和修改,即记录每次的修改以及版本迭代的一个管理系统;
Git就是当前主流的版本控制器,它可以记录和维护控制我们当前电脑上所有格式的文档;对于开发人员来说,该工具可以进行管理和记录我们项目中的源代码文档;
对于文本文件:我们在第几行进行了一些列操作,git就会将我们在什么文件上的什么操作进行记录;
对于二进制文件:图片和视频,在修改图片后只能记录模糊的参数(内存:100kb->200kb),不能详细的记载进行的一些列操作;
1.2 git安装
1、 查看git安装:
ubuntu@VM-4-5-ubuntu:~$ git --version
此时服务器上已经安装了git;
2、卸载git
sudo apt-get remove git -y
3、安装指令
sudo apt-get install git -y
1.3 创建本地仓库
1、先创建一个目录:
mkdir gitcode;
cd gitcode/
2、初始化仓库
初始化git仓库:gitcode$ git init
查看隐藏目录:la
查看该文件的树形结构:tree .git
1.4 对本地仓库进行配置
1、添加配置
ubuntu@VM-4-5-ubuntu:~/gitcode$ git config user.name "Smallye"
ubuntu@VM-4-5-ubuntu:~/gitcode$ git config user.email "1533722647@qq.com"
ubuntu@VM-4-5-ubuntu:~/gitcode$ git config -l
2、删除配置
ubuntu@VM-4-5-ubuntu:~/gitcode$ git config --unset user.name
ubuntu@VM-4-5-ubuntu:~/gitcode$ git config --unset user.email
查看配置:
3、添加服务器所有本地git仓库的用户配置--global
ubuntu@VM-4-5-ubuntu:~/gitcode$ git config --global user.name "smollye"
ubuntu@VM-4-5-ubuntu:~/gitcode$ git config --global user.email "1533722647@qq.com"
查看配置如下:
删除全局用户:
ubuntu@VM-4-5-ubuntu:~/gitcode$ git config --global --unset user.name
ubuntu@VM-4-5-ubuntu:~/gitcode$ git config --global --unset user.email
1.5 论git管理文件
1、创建文件
当前我们的git不能管理readme文件,因为我们的本地仓库(版本库)是在.git目录下;同时我们把readme文件放到.git目录之后也是不能就行呗git管理的;
结论如下:
首先,不允许在.git下进行手动修改;
其次,readme只能放在gitcode的目录下,即该readme文件在工作区;而.git
是版本库;
最后,如下图所示,我们学习如何将工作区中的文件存放到版本库中:
左侧为工作区;
stage,也可以叫index,是暂存区或者索引;是树状结构,存的是一个个修改的git对象的索引;
master:也是一个树状结构,也存的是一个个修改的git对象的索引;
head:是一个指针,指向master分支;
修改:新增,修改,删除(在工作区);
add:将工作区中的文件添加到暂存区中;
commit:将暂存区中的文件提交到master分支下;
add和commit两个操作之后,git才能管理我们的文件了;
objects:对象库,修改的工作区内容会写入该对象库的一个新的git对象中;add一次,就会存在对象库中一次;
1.6 添加文件
1、完善readme文件
ubuntu@VM-4-5-ubuntu:~/gitcode$ vim Readme
ubuntu@VM-4-5-ubuntu:~/gitcode$ cat Readme
hello git
ubuntu@VM-4-5-ubuntu:~/gitcode$ git add .
//这是将当前所有工作区的文件添加到暂存区
ubuntu@VM-4-5-ubuntu:~/gitcode$ git add Readme
ubuntu@VM-4-5-ubuntu:~/gitcode$ git commit -m "add first file"
//这是将当前所指的文件提交到git本地仓库;
2、连续添加多个文件
3、打印所有提交记录
git log
4、打印剪短的日志
git log --pretty=oneline
1.7 查看git对象里面的内容
git cat-file -p commitId;
里面展示的tree后面的id是一个索引;master指针所指的git对象都会存放在object对象库里面;
其实git追踪管理的其实是修改,而不是文件;
1.8 一些git常见的指令
1、对readme文件进行修改
2、git status
查看git本地仓库的一些状态;
因为我们的文件修改是在工作区中进行的,所以在本地git仓库中是差不到的;
3、显示目前暂存区和工作区之间的差异
git diff 文件名;
4、对于修改后的文件重新进行添加到暂存区;
显示暂存区中改变的文件;
5、提交到版本库之后查看状态
显示没有什么可以提交了,工作区中是干净的;