0
根據本書版本控制與Git,「git diff顯示您的工作目錄和索引之間的區別,它暴露工作目錄中的髒東西,因此是您的下一個提交階段的候選人。 「在git diff中比較哪些文件?
「git diff顯示您的工作目錄和索引之間的區別」是什麼意思?當你修改一個文件並運行git diff時,暫存區中沒有任何東西可以讓git比較工作目錄,因爲你還沒有登臺,所以它比較什麼?
根據本書版本控制與Git,「git diff顯示您的工作目錄和索引之間的區別,它暴露工作目錄中的髒東西,因此是您的下一個提交階段的候選人。 「在git diff中比較哪些文件?
「git diff顯示您的工作目錄和索引之間的區別」是什麼意思?當你修改一個文件並運行git diff時,暫存區中沒有任何東西可以讓git比較工作目錄,因爲你還沒有登臺,所以它比較什麼?
如果您的存儲庫狀態爲是乾淨的,意味着您尚未修改任何文件,那麼索引與提交HEAD指向的存儲庫狀態相匹配。
在這種情況下,如果修改文件,然後執行git diff
,則修改後的文件(在您的工作區域中)將與索引進行比較,該索引將顯示與將其與當前提交進行比較相同的差異。但是,如果您現在創建該文件(git add that-file
),然後再次修改該文件,並執行另一個git diff
,則會將修改後的文件(在您的工作區中)與索引中的暫存和修改文件進行比較。這與現在與HEAD提交的比較不同。
如果您運行這些命令,你會看到git diff
與C,而不是用C比較B:
git init .
echo a >test.txt
git add .
git commit -m "Initial commit"
echo b >test.txt
git add .
echo c >test.txt
git diff
輸出:
diff --git i/test.txt w/test.txt
index 2fea07c..12d6973 100644
--- i/test.txt
+++ w/test.txt
@@ -1 +1 @@
-b
+c
該指數不包括 「一無所有」,它包含處於最新提交狀態的存儲庫的內容。 – mkrieger1
與使用git diff HEAD的上次提交進行比較有什麼不同? –
直到您修改索引後纔會有所不同。 – mkrieger1