git log --stat //--stat引數可以看到每次提交的檔案變更統計
當前工作分支與版本庫的頭指標HEAD進行比較
git diff HEAD
因為 git add後,修改的檔案都已經新增到緩衝區了,使用git diff 比較不出差異,使用git diff HEAD 才可以比較出差異,因為畢竟沒有提交
撤出快取區
git reset HEAD 檔名
清楚不打算要的修改
git checkout -- 檔名
簡潔顯示狀態
git status -s
顯示日誌
git log --pretty=oneline
兩種狀態區別
加入緩衝區之前
加入緩衝區之後
兩個M位置不一樣
綠色的位於第一例的。表示版本庫中與緩衝區的不一樣有改動
紅色的位於第二列的.表示緩衝區的與當前工作目錄的不一樣有改動
git diff 是工作區與緩衝區的差異
git diff HEAD 將工作區與當前分支做比較(當前分支也就是HEAD相當於版本庫)
git diff --cached或者--staged 緩衝區和版本庫做比較
git commit 提交是提交緩衝區的改變到版本庫中
檢視.git/index 顯示時間戳
ls --full-time .git/index
git rm --cached <file> 會從暫存區刪除檔案。工作區不作出改變
git checkout . 或者 checkout -- <file>會用暫存區的檔案或指定檔案替換工作區的檔案,這個操作很危險
git checkout HEAD . 或者git checkout HEAD <file> 會用HEAD指向的master分支中的全部或部分檔案替換工作區和暫存區的檔案,很危險
git ls-tree -l HEAD //檢視HEAD目錄樹
-l 引數顯示檔案大小
git clean -fd
清除工作區當前沒有加入版本庫的檔案和目錄
git ls-files -s 顯示暫存區目錄樹
想針對暫存區的目錄樹使用git ls-tree用git write-tree 將暫存區的目錄樹寫入git物件庫
git ls-tree -l <這裡是執行git write-tree 命令後顯示的SHA1碼> 檢視暫存區目錄樹
遞迴操作顯示暫存區目錄樹
git write-tree | xargs git ls-tree -l -r -t
儲存當前工作進度
git stash