git reset 版本回退
基本参数:
reset 参数–soft、 –mixed、 –hard,会对状态 working、index、head 进行重置
git reset --mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
git reset --soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git reset --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,此命令 慎用!
head:这是当前分支版本顶端的别名,也就是在当前分支你最近的一个提交
Index:index也被称为staging area,是指一整套即将被下一个提交的文件集合。他也是将成为HEAD的父亲的那个commit
working :你正在工作的那个文件集
回退命令:
git reset HEAD 最近一个提交
git reset HEAD^ 上一次提交
git reset HEAD^ ^ 上一次的 上一次的提交(倒数第三次)
git reset HEAD^^^ 倒数 第四次的 提交
git reset HEAD~0 最近一个提交
git reset HEAD~1 上一次提交
git reset HEAD^2 上一次的 上一次的提交(倒数第三次)
git reset HEAD^3 倒数 第四次的 提交
git reset --hard commit_id 回退到指定commit id 处
对比两个版本直接的差异
git diff HEAD //与上次 commit 之间的差别(爸爸)
git diff HEAD^ //与上上次(爷爷)
git diff HEAD^^ //与上上上次(曾祖父)
git diff HEAD~5 //与前面第5次commit(好吧…祖先吧)
git diff HEAD^..HEAD //中间是两个点比较(爸爸)和(爷爷)的差别
git diff f5fdjsalfjdskaf..4fdklsajfdksaf //比较 两个不同 hash 值记录之间的不同
git diff master bird //比较 branch 之间的不同
git diff --since=1.week.ago --until=1.minute.ago //还可以根据时间来比较哦