1

との違いを教えてgit show test.rbくださいgit show HEAD:test.rb

コマンドは次をgit show HEAD:test.rb返します。

test file contents

git show test.rb戻りながら:

commit a8e90b3dbf4eed03cdbb3cd3b99f98e9153c7219 
Author: Misha Moroshko <michael.moroshko@gmail.com> 
Date:   Thu Oct 27 17:03:04 2011
+1100

    asd

diff --git a/test.rb b/test.rb new file mode 100644 index
0000000..b48e119
--- /dev/null
+++ b/test.rb @@ -0,0 +1 @@
+test file contents
4

2 に答える 2

3

git showコミットの場合、ログメッセージとテキストの差分が表示されます。つまりgit show、コミットをHEADと見なして、実行するとそれが得られます。そしてgit show file、にフィルタリングされたHEADのログメッセージとテキスト差分を表示しますfile

特定のコミットでファイルの内容を表示するには、を実行しますgit show commit:file。したがって、git show HEAD:fileはHEAD内のファイルの内容を示しています。

gitrevisionsマニュアルページから:

接尾辞:その後にパスが続きます(例:HEAD:README); これは、コロンの前の部分によって名前が付けられたツリーっぽいオブジェクトの指定されたパスにあるブロブまたはツリーに名前を付けます。:path(コロンの前に空の部分がある、たとえば:README)は、次に説明する構文の特殊なケースです。指定されたパスのインデックスに記録されたコンテンツ。

git show manual(git show --help)の例も参照してください。

于 2011-10-27T06:23:58.057 に答える
2

git show test.rbとして書き直すことができますgit show -- test.rbgit showこの形式により、出力を呼び出してフィルタリングしていることがより明確になりますtest.rbgit showデフォルトではが表示されるためHEAD、これは。と同じgit show HEAD -- test.rbです。基本的に、コミット情報が表示されますが、特定のファイルの差分のみが表示されますtest.rb

ただし、表示するオブジェクトは、コミットに関連付けられたツリーから到達可能なパスに存在するblobであることをgit show HEAD:test.rb明示的に指示しています。git showtest.rbHEAD

于 2011-10-27T06:15:46.373 に答える