2016-11-30 19 views
11

私はレポを作成し、内部にファイルを作成し、ファイルに内容を入れて、ファイルをコミットしました。さて、私はそのコミットのdiffを見たいのですが、追加されたファイルとそれに追加された行を理想的に表示する必要があります。最初のコミットのGit diffを取得するには?

ただし、git diff HEAD^ HEADfatal: ambiguous argument 'HEAD^': unknown revision or path not in the working tree.を返します。これはおそらくこれが最初のリポジトリコミットであったためです。

どうすれば解決できますか?最初のコミットで追加されたファイルの差分を表示する方法はまだありますか?

+1

'git show'が動作します。しかし、最初のdiffは常にヌルからコンテンツ全体までです。 – ElpieKay

+0

@ElpieKayそれは動作しますが、コミットサマリーも含まれます。 'git show 'を実行した場合、コミットの要約を使わずにdiffだけを表示させることができますか? –

+0

'git show --pretty = %% | sed 1,2d'。 '%% 'は1行だけを出力する任意のプレースホルダとすることができます。 '%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)'を使うことができます。 –

関連する問題