git暫存區(git權威指南筆記)

2021-07-28 09:49:46 字數 1917 閱讀 8418

1、檢視提交(commit)日誌:git log 

看到每次提交的檔案變更統計: --stat       git log --stat

精簡輸出日誌:--pretty=oneline git log --pretty=oneline

2、檢視檔案狀態: git  status

精簡格式的狀態輸出:-s  git status -s 

3、git diff 

不帶任何選項和引數:顯示工作區的最新改動(即工作區與提交任務(暫存區,stage)相比的差異)

工作區和head(當前工作分支):git diff head

提交暫存區和版本庫:git  diff --cached

4、撤銷工作區中測未提交的修改:git checkout -- git checkout -- welcome.txt

5、git status (git diff)掃瞄工作區改動的時候。

git判斷檔案有沒有改變:先比較檔案的時間戳、檔案大小,再比較檔案內容。

先依據.git/index檔案中記錄的(用於跟蹤工作區檔案的)時間戳、長度等資訊判斷工作區檔案是否改變,如果工作區檔案的時間戳改變了,說明檔案的內容可能被改變了,

需要開啟檔案,讀取檔案內容,與更改這前的原始檔案相比較,判斷檔案內容是否被更改。如果檔案內容沒有更改,則將該檔案新的時間戳記錄到.git/index檔案中。

.git/index 虛擬工作區的目錄樹(檔名和檔案狀態資訊)

.git/objects 檔案內容

檔案索引:建立了檔案和物件庫中物件實體之間的對應

6、工作區、暫存區、版本庫目錄相對瀏覽:  

版本庫目錄權:

git ls-tree -l head 

顯示檔案的大小:-l 

100644 blob a11790e8c69269e02e04f141bc00c9f94b79b99d      10    readme.md

輸出內容:

100644):檔案的屬性(rw-r--r--) 

blob :git物件庫中的乙個blob物件(檔案)

a11790e8c69269e02e04f141bc00c9f94b79b99d:檔案在物件庫中對應的id

清除工作區中沒有加入版本庫的檔案和目錄(非跟蹤檔案和目錄):git clean -fd 

用暫存區內容重新整理工作區 git checkout .

暫存區目錄樹:

git ls-files -s 

100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0       testthree.txt

0 暫存區編號

針對暫存區便用 git ls-tree

先把暫存區的目錄樹寫入git對像庫: git write-tree

寫入物件庫中的treeid :0f0f267c5bad5f73942a77580a6eb4af24daa425

然後 git ls-tree -l 0f0f26

040000 tree 1e4f7e68a173bb0f1e36b70d48436412f3fdac00       -    a (tree樹對角,一級目錄a)

100644 blob ce013625030ba8dba906f756967f9e9ca394464a       6    testone.txt

對本地所有變更的檔案執行提交操作,包括對本地修改的檔案和刪除的檔案,但不包括未被版本庫跟蹤的檔案:git commit -a (不要使用,因為會丟掉gi暫存區帶給使用者的最大好處:對提交內容控制的能力)

暫存狀態:git stash

Git之暫存區

git index是乙個包含檔案索引的目錄樹,如同乙個虛擬的工作區,記錄檔名和檔案的狀態資訊 時間戳 檔案長度等 檔案內容則儲存在git物件庫.git objects目錄中通過檔案索引建立檔案和物件庫中物件實體之間的對應關係。執行git status或git diff命令掃瞄工作區改動時,先根據.g...

恢復git暫存區

1 右鍵開啟git bash here 2 輸入命令找到專案 cd d 碟符 xidaiw 資料夾 3 列出目錄下的檔案,輸入命令 ls la 4 查詢專案,輸入命令 cd web 8081 專案名 5 查詢暫存區列表,輸入命令 git stash list 6 恢復最近的乙個,輸入命令 git s...

Git學習 暫存區

下面需要學習兩個基本概念 工作區 暫存區 其中,工作區指的是資料夾目錄下所能看到的區域 暫存區指的是一塊快取區,通過下面的命令首先是將檔案都新增到暫存區當中 git add 檔案接著使用下面的命令,將暫存區中的內容新增到版本倉庫當中 git commit m comment 是中需要銘記的是,add...