使用git status命令可以查看文件的狀態(tài)。但是悼院,顯示出來(lái)的文件信息并不是特別詳細(xì)判没。我們想要查看更加詳細(xì)的文件狀態(tài)信息,可以使用命令git diff死遭。
git diff命令可以幫助我們得知當(dāng)前做的哪些更新還沒(méi)有暫存?有哪些更新已經(jīng)暫存起來(lái)準(zhǔn)備好了下次提交凯旋? git diff 會(huì)使用文件補(bǔ)丁的格式顯示具體添加和刪除的行呀潭。
我們修改test.txt文件之后,保存至非。然后運(yùn)行命令 git status.
這里的test.txt沒(méi)有被加入到跟蹤區(qū)域钠署,顯示為紅色已經(jīng)修改的狀態(tài)。系統(tǒng)提示我們要先添加到暫存區(qū)才能提交荒椭。
接下來(lái)谐鼎,我們運(yùn)行g(shù)it diff 命令。
此時(shí)趣惠,我們發(fā)現(xiàn)该面,diff命令給我們列出了我們這一次修改的文件名,文件內(nèi)容信卡。
注意隔缀,注意,注意
git diff
此命令比較的是工作目錄中 當(dāng)前文件 和 暫存區(qū)域快照 之間的差異傍菇,也就是修改之后還沒(méi)有暫存起來(lái)的變化內(nèi)容猾瘸。
若要看已經(jīng)暫存起來(lái)的文件和上次提交時(shí)的快照之間的差異,可以用 git diff --cached 命令丢习。(Git 1.6.1 及更高版本還允許使用 git diff --staged牵触,效果是相同的,但更好記些咐低。)來(lái)看看實(shí)際的效果揽思。
我們先不暫存該文件,執(zhí)行命令看看见擦。
發(fā)現(xiàn)沒(méi)有任何輸出钉汗。因?yàn)楝F(xiàn)在沒(méi)有任何暫存文件羹令。
我們執(zhí)行命令add,把test.txt添加到暫存區(qū)域损痰。
然后再次執(zhí)行g(shù)it diff --cached命令福侈,輸出結(jié)果如下:
現(xiàn)在 test.txt已經(jīng)添加到了暫存區(qū),該命令比較的是暫存區(qū)和上一次提交快照之間的差異卢未。上一次提交的快照中并沒(méi)有添加
2017-11-10 添加
這句話肪凛。
git diff --cached 列出了暫存區(qū)的文件和上一次提交的文件之間的變化。
我們?cè)俅尉庉媡est.txt文件辽社,再添加一行:
123456
使用命令 git status看看結(jié)果:
我們看到了暫存前后的兩個(gè)版本伟墙。
運(yùn)行命令git diff --cached,輸出結(jié)果:
并沒(méi)有發(fā)現(xiàn)新添加的一行
123456
這是為什么呢滴铅?
前面已經(jīng)講過(guò)了戳葵,git diff --cached 是比較已經(jīng)暫存區(qū)域和上一次提交的文件變化。這一次的改變并沒(méi)有被添加到跟蹤失息,所以看不到新的文件內(nèi)容譬淳。
我們?cè)俅螆?zhí)行命令add
重新執(zhí)行 git diff --cached 命令:
現(xiàn)在就可以看到了本次修改的內(nèi)容了档址。
總結(jié):
1盹兢、每修改一次文件,要想比較暫存區(qū)和上次提交的變化守伸,都要執(zhí)行 add命令绎秒。
2、git status 命令是查看文件的狀態(tài)尼摹。已暫存的文件和未暫存文件都能看到狀態(tài)见芹。但是不能看到修改的內(nèi)容。
3蠢涝、git diff命令可以看到文件的修改的內(nèi)容玄呛。比較的是未暫存的文件的修改前后的變化。
4和二、git diff --cached 也可以看到文件修改的內(nèi)容變化徘铝,比較的是已經(jīng)暫存的文件和上次提交的變化。
大家明白了嗎惯吕?
祝開心惕它。