git學習筆記(二)

c3tc3tc3t發表於2013-10-26

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-treegit write-tree 將暫存區的目錄樹寫入git物件庫

git ls-tree -l <這裡是執行git write-tree 命令後顯示的SHA1檢視暫存區目錄樹

 

 

 

 

 

遞迴操作顯示暫存區目錄樹

git write-tree | xargs git ls-tree -l -r -t

 

儲存當前工作進度

git stash

相關文章