0
重新編寫此行爲只需初始化一個新的git存儲庫,創建一個文件,添加並提交。現在再次編輯這個文件(沒有添加,這次沒有提交)並存儲。結果應該是這樣的:git log -1 -p stash @ {0}顯示空的補丁
$ git log [email protected]{0} --graph --decorate
* commit C (refs/stash)
|\ Merge: A C
| | WIP on master: A init
| |
| * commit B
|/ index on master: A init
|
* commit A (HEAD, master)
init
A和C之間的差異顯示了預期的結果:
$ git diff [email protected]{0}^[email protected]{0}
diff --git a/file b/file
index b1b7161..51bdcb4 100644
--- a/file
+++ b/file
@@ -1 +1,2 @@
+a new uncommited change
init
我希望爲命令
$ git log [email protected]{0}
,但相同的輸出有沒有補丁。爲什麼會發生? (這與存儲無關:如果使用空commit,no-ff ...創建歷史記錄,則行爲相同)
也許你誤會了我。儲藏前我沒有加入索引。因此B包含與A相同版本的文件,並且在存儲位於C之前工作樹會更改。如果區分A..B,則不會發生更改。如果您比較A..C,將顯示工作樹的更改(對於B..C,則相同)。雖然A是C的第一個父親,我會假設git log -1 -p應該顯示更改? – Henning
@亨寧它不應該,但你是對的,我瘋狂,抱歉讓我自己的測試錯誤。我重寫了我的答案。 (通常完全重寫這樣的答案是不被接受的,因爲歪曲現有的投票是不公平的,但沒有人對此答案投票。) – hvd
感謝您的詳細解釋!因此,讓git-log選擇與git-show相同的diff-options是不明智的。還是有反對意見? – Henning