前言
注:本文下的+除非特殊声明,否则一律不作为实际加号,仅表示连接
所有的版本控制系统,只能跟踪文本文件的改动比如txt文件,网页,所有程序的代码等,能清楚的知道改动了什么。但是类似于图片、视频这类的二进制文件,git也可以进行版本管理,但是git只能告诉你这两个二进制文件有不同(比如用大小去观测,大小不同两个文件肯定有改动),但是不能告诉我们他们之间具体的差异
1.在D盘目录下创建名为GitTest文件夹
右键该文件夹点击显示更多选项,选择Git Bash Here,
打开命令行
2.使用git init 把GitTest目录变成git管理的仓库
这时会生成.git文件,这个目录是Git来跟踪管理版本的,不要手动修改这里面的文件,否则会把git仓库给破坏了(如果看不到见下图打开查看隐藏的项目)
3.pwd命令显示当前目录
显示当前目录为D盘下的GitTest
4. ll -a 列出当前目录下所有文件或文件夹(包含隐藏的文件和目录 隐藏的以"."开头)
ll .git 列出(.git)目录下所有的文件和目录
5.vi+文件名 编辑文档 esc退出编辑 :wq保存
输入vi git1.txt 创建文档进入该页面
点击“i”进入编辑模式(下标显示插入) ,并输入“Hello,World”
敲“esc”键,插入下标消失,按“:wq” 并敲回车,保存退出编辑 ,返回原界面
6.cat+文件名 显示文档内容
7.git status 用于显示当前工作树的状态
可以列出已修改但是未添加到暂存区的文件、已经添加到暂存区等待提交的更改等
这时我们可以发现现在位于主分支上,过往没有任何提交,而git1.txt 此时位于工作区
8.git add+文件名 将修改的文件添加到暂存区
(工作区文档名是红色的,暂存区是绿色的)
git add . 添加所有文件到暂存区 git add 文件名 文件名, 添加指定文件到缓存区
9.git commit -m "..." 进行提交,"-m"后面的是提交信息
注意:这个信息是给自己看的备注,是一定要写的
10.git rm --cached +文件名 将指定文件回退到工作区
输入 git rm --cached git1.txt ,下面出现暂缓区执行删除操作,git1.txt到工作区
11.git config --global user.name "..." 全局设置你的用户名
git config --global user.email "..." 全局设置你的邮箱
12.git log 版本日志,可以查看每一次的提交。
每一个版本都有独属于自己的sha1值,一般我们操作的时候只取前四位
这里进行了两次提交,箭头所指就是每一个提交的sha1值(跟身份证差不多,唯一识别身份)
13.git reset --hard HEAD^ 回退到上一个版本
git reset --hard HEAD~n 回退到上n个版本
因为sha1值是唯一的,我们也可以通过sha1值的前四位,回退到指定的版本。
git reset --hard ****(sha1值前四位)
回退版本之后我们可以查看文件内容 使用指令cat+文件名
14.git rm +文件名 将指定文件放到暂存区(待删除)
这时我们再用git commit -m +“备注” 成功提交删除操作
查看当前目录
我们发现git1.txt文件没了,在文件资源管理器中也找不到
注意,git管理下的目录或文件最好不要直接通过文件资源管理器直接删除,要通过git命令来删除