用于比較兩次修改的差異
1.1 比較工作區(qū)與暫存區(qū)
git diff 不加參數(shù)即默認(rèn)比較工作區(qū)與暫存區(qū)
1.2 比較暫存區(qū)與最新本地版本庫(本地庫中最近一次commit的內(nèi)容)
git diff --cached [<path>...]
1.3 比較工作區(qū)與最新本地版本庫
git diff HEAD [<path>...] 如果HEAD指向的是master分支稚伍,那么HEAD還可以換成master
1.4 比較工作區(qū)與指定commit-id的差異
git diff commit-id [<path>...]
1.5 比較暫存區(qū)與指定commit-id的差異
git diff --cached [<commit-id>] [<path>...]
1.6 比較兩個(gè)commit-id之間的差異
git diff [<commit-id>] [<commit-id>]
1.7 使用git diff打補(bǔ)丁
git diff > patch //patch的命名是隨意的,不加其他參數(shù)時(shí)作用是當(dāng)我們希望將我們本倉庫工作區(qū)的修改拷貝一份到其他機(jī)器上使用韵卤,但是修改的文件比較多欺冀,拷貝量比較大蚜点,
此時(shí)我們可以將修改的代碼做成補(bǔ)丁,之后在其他機(jī)器上對應(yīng)目錄下使用 git apply patch 將補(bǔ)丁打上即可
git diff --cached > patch //是將我們暫存區(qū)與版本庫的差異做成補(bǔ)丁
git diff --HEAD > patch //是將工作區(qū)與版本庫的差異做成補(bǔ)丁
git diff Testfile > patch//將單個(gè)文件做成一個(gè)單獨(dú)的補(bǔ)丁
拓展:git apply patch 應(yīng)用補(bǔ)丁,應(yīng)用補(bǔ)丁之前我們可以先檢驗(yàn)一下補(bǔ)丁能否應(yīng)用赴恨,git apply --check patch 如果沒有任何輸出商玫,那么表示可以順利接受這個(gè)補(bǔ)丁
另外可以使用git apply --reject patch將能打的補(bǔ)丁先打上箕憾,有沖突的會生成.rej文件,此時(shí)可以找到這些文件進(jìn)行手動打補(bǔ)丁