2016-11-30 106 views
11

我創建了一個回購,在其中創建了一個文件,在文件中放入了一些內容,並提交了該文件。現在,我希望看到該提交的差異,理想情況下應該顯示添加的文件和添加到其中的行。如何獲得第一次提交的Git diff?

但是,git diff HEAD^ HEAD返回fatal: ambiguous argument 'HEAD^': unknown revision or path not in the working tree.,可能是因爲這是第一次提交回購。

這怎麼解決?是否仍有辦法查看第一次提交中添加的文件的差異?

+1

'git show'可以工作。但第一個差異總是從零到整個內容。 – ElpieKay

+0

@ElpieKay這可行,但也包括提交摘要。可能只打印diff而不提交摘要如果我做'git show '? –

+0

'git show --pretty = %% | sed 1,2d'。 '%%'可以是隻輸出一行的任何佔位符,例如'%h','%t'。 – ElpieKay

回答

38

你可以這樣做:

git diff 4b825dc642cb6eb9a060e54bf8d69288fbee4904 HEAD 

4b825dc642cb6eb9a060e54bf8d69288fbee4904在Git中是「空樹」的ID和它總是可以在每一個存儲庫。

+3

@CharlesBaley,Cool,你在哪裏得到這個sha-1代碼? – gzh

+0

不錯,這是有記錄的東西還是這依賴於可能在未來消失的功能不穩定? –

+2

當git繼續使用sha1時,空樹的id不會改變。你可以使用'$(printf''| git hash-object -t tree --stdin)'來獲得更好的可讀性。 –

相關問題