閱讀Git pre-commit hook : changed/added files後後,下面的問題出現了:混帳:顯示文件的內容,因爲它看起來就像是犯
鑑於我有兩個文件被演出和不分階段的變化,我怎麼能顯示該文件的預覽升級後的內容?
例子:
echo "foo" >> file
git add file
echo "bar" >> file
通緝輸出:
[previous contents of file]
foo
閱讀Git pre-commit hook : changed/added files後後,下面的問題出現了:混帳:顯示文件的內容,因爲它看起來就像是犯
鑑於我有兩個文件被演出和不分階段的變化,我怎麼能顯示該文件的預覽升級後的內容?
例子:
echo "foo" >> file
git add file
echo "bar" >> file
通緝輸出:
[previous contents of file]
foo
使用:
前綴可訪問當前索引中的對象(已暫存但尚未提交)。
git show :file
見gitrevisions(重點煤礦):
<rev>:<path>, e.g. HEAD:README, :README, master:./README
後跟路徑名在樹中上下的對象之前由部分命名爲給定的路徑斑點或樹的後綴
:
冒號。:path
(在冒號前有一個空的部分)是下面描述的語法的特例:在給定路徑的索引中記錄的內容。
+1:非常整齊 - 比我找到的解決方案更好 – 2011-03-01 10:45:49
+1:非常好,必須記住一個! – 2011-03-01 10:56:37
非常好,但我更喜歡與相對路徑一起工作的東西。即使文檔聲明「以./或../開頭的路徑與當前工作目錄相關,」這對我不起作用。 – user123444555621 2011-03-01 12:15:05
只要看看上面的回答這個問題:How do I show the changes which have been staged?
的--cached
選項是你想要的。
這將顯示舞臺文件的***區別,但它不會告訴你文件看起來如果你只是打開它編輯或「貓」它。 – 2013-08-10 18:33:23
downvote道歉,但這是一個完全不同的問題完美的答案! :微笑: – pvandenberk 2014-10-14 19:12:24
更新說明:answer from grawity具有jleedev's answer to another question了一個非常巧妙的解決方案
這個配方是:
git cat-file blob $(git ls-files -s file | awk '{print $2}')
您可能希望創建一個git alias如果你要經常使用它。
正是我想要的。不幸的是,我的搜索沒有提出這個問題。 – user123444555621 2011-03-01 10:38:17
@ Pumbaa80:謝謝,但我認爲grawity的回答更好,應該接受:) – 2011-03-01 10:48:59
請注意,'cat-file'也接受':file'。 – 2011-03-03 11:48:19
你可以做git diff --cached,但這不完全是你想要的。
git grep -h --cached^-- file
適合我。
'cat file'不會顯示'file'的當前工作副本嗎? – 2011-03-01 10:27:46
是的,這是正確的解決方案 - 或者這是一個錯誤的問題? – silvio 2011-03-01 10:30:52
可能重複[如何從git索引獲取文件的內容?](http://stackoverflow.com/questions/5032188/how-can-i-get-content-of-a-file-from-git -index) – user123444555621 2011-03-01 10:38:54