基本參數:
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 //還可以根據時間來比較哦
