Git 中查看修改

Git 中有個方便的命令 git diff 可以方便地查看對已暫存的文件做了哪些修改

一般來說,Git 中文件的狀態有2種,已跟蹤和未跟蹤,已跟蹤的文件會記錄其未更新,已修改和已暫存這些狀態的變化。而未跟蹤的文件 Git 就不去管它。對文件作了修改以後,git diff 命令可以查看跟蹤文件修改以後和已修改(未暫存)的不同以及和已暫存的不同。查看這兩個不同有一點區別。

git diff 

查看跟蹤文件修改以後和已修改(未暫存)的不同

使用 git add 添加文件後,文件直接變爲已暫存狀態 ,下次就可以通過 git commit 提交了。但是對文件作了修改以後,這個文件就變成了已修改但是未暫存的狀態,git diff 可以查看修改以後的文件和之前已暫存狀態的不同

可以看到之前已暫存的基礎上添加了新的內容:“我是git新添加的一行”

git diff --cached 或者 git diff --staged

修改以後並變爲已暫存,比較新的已暫存和之前已暫存文件的不同

一些細節

上面當然很簡單,但是這裏主要是指出 git diff 查看已暫存狀態之間的差別和 git diff --cached 查看已修改和已暫存的差別表現出來的細節,並通過分析有一個清楚的認識。

文件修改後還是已修改但未暫存的狀態時,分別使用兩個命令查看

第一行輸出的內容很顯然,git add 之後是已暫存狀態,修改之後比較的是修改後未暫存和已暫存之間的不同,顯示爲添加了新的一行。

第二個命令查看時,只有已暫存時候的一行內容,這是因爲修改的內容還沒有存到暫存區域,也就是暫存區域間還沒有不同。

使用 git add 將修改存到暫存區域後分別使用兩個命令查看

這時候第一個命令的輸出爲空,這是因爲已修改爲暫存的文件已經不存在了,也就沒有不同了。

修改保存到暫存區域後,git diff --cached 進行已暫存文件之間的比較,於是顯示出來了新添加的一行。

因此,單單 git diff 不過是顯示還沒有暫存起來的改動,而不是這次工作和上次提交之間的差異。所以有時候你一下子暫存了所有更新過的文件後,運行 git diff 後卻什麼也沒有,就是這個原因。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章