05_git版本回退和版本比较

git log git的历史提交记录


image.png

commit 后面的hash值是 git提交id

git log --pretty=oneline 每条提交记录显示一行


image.png

git log --oneline 指hash值只显示一部分,只显示之前版本,未来的没了


image.png

git reflog


image.png

git在管理版本的时候有个指针(HEAD)
==================控制版本前进后退的几种方式==============
基于索引值 【推荐,可前进可后退】
git reset --hard [局部hash索引值]
git reset --hard e749825
基于^【只能后退】
git reset --hard HEAD^ 后退一个版本
有几个^,往回退几步
基于~【只能后退】
git reset --hard HEAD~3 后退3步

==========关于--hard --soft --mixed的区别=======
--soft 仅在本地库移动HEAD指针


image.png

git status
文件是绿色的,相当于工作区改了,暂存了,但没提交

--mixed 本地库移动HEAD指针
重置暂存区


image.png

文件是红色的,相当于工作区改了,没暂存,没提交

--hard 本地库移动HEAD指针
重置暂存区
重置工作区

让本地库、暂存区、工作区到当前指针的位置(如果之前有--sort或者--mixed命名,以本地库为准)
git reset --hard HEAD

=================永久删除后找回=================
1、本地库、暂存区、工作区域一致,删除,并提交到本地库
rm aa.txt 工作区删除aa.txt
暂存 =>提交
通过 git reflog 的索引进行找回文件(版本回退)
git reset --hard 7e07928
2、删除文件,添加到暂存区没有提交到本地库
git reset --hard HEAD
(以本地库指针版本为准)

删除文件找回
前提:
文件必须有提交过本地库的记录
注意区分:
本地库的指针的版本,指向的是哪个

===================文件比较=================
工作区中文件进行了修改,查看修改内容,此时是跟暂存区上一版本进行比较
git diff app.txt


image.png

执行 git add .
再执行 git diff app.txt
发现没有不同
git diff HEAD app.txt (工作区跟本地仓库指针的版本进行比较)
结果 有不同
还可以和历史版本进行比较
git diff HEAD^ app.txt
另外,不带文件名,可以比较多个文件

你可能感兴趣的:(05_git版本回退和版本比较)