使用するgit show
あなた自身の答えを完成させるために、構文は確かに
git show object
git show $REV:$FILE
git show somebranch:from/the/root/myfile.txt
git show HEAD^^^:test/test.py
このコマンドは、通常のリビジョン スタイルを使用します。つまり、次のいずれかを使用できます。
- ブランチ名 ( ashによって提案される)
HEAD
+ x^
文字数
- 特定のリビジョンの SHA1 ハッシュ
- 特定の SHA1 ハッシュの最初の数文字 (おそらく 5 文字)
ヒントgit show
" "を使用するときは、現在のディレクトリの位置ではなく、常にリポジトリのルートからのパスを指定することを覚えておくことが重要です。
( Mike Moreartyは、少なくとも git 1.7.5.4 では、./
パスの先頭に " " を付けることで相対パスを指定できると述べています。例:
git show HEAD^^:./test.py
)
使用するgit restore
Git 2.23+ (2019 年 8 月) では、わかりにくいコマンドの代わりに which を使用することもできgit restore
ますgit checkout
git restore -s <SHA1> -- afile
git restore -s somebranch -- afile
これにより、 「ソース」( -s
)コミット SHA1 またはブランチに存在するファイルのみが作業ツリーに復元されますsomebranch
。
インデックスも復元するには:
git restore -s <SHA1> -SW -- afile
( -SW
: の略--staged --worktree
)
starwarswiiのコメントで述べたように
コンテンツをファイルにパイプできます。これは、コミットからファイルをすばやく比較したい場合に最適です。
たとえば、次のことができます。
git show 1234:path/to/file.txt > new.txt
git show 1234~:path/to/file.txt > old.txt
次にそれらを比較します。
低レベルの git 配管コマンドの使用
git1.5.x より前は、これはいくつかの配管で行われていました。
git ls-tree <rev>
コミット内の 1 つ以上の「blob」オブジェクトのリストを表示します
git cat-file blob <file-SHA1>
特定のリビジョン内でコミットされたファイルを cat します (svn cat と同様)。git ls-tree
指定された file-sha1 の値を取得するために使用します
git cat-file -p $(git-ls-tree $REV $file | cut -d " " -f 3 | cut -f 1)::
git-ls-tree
$file
リビジョン内のオブジェクト ID をリストします$REV
。これは出力から切り出され、git-cat-file
実際に呼び出される必要があるへの引数として使用されgit-cat-object
、単にそのオブジェクトを にダンプしますstdout
。
git cat-file
注: Git 2.11 (2016 年第 4 四半期) 以降、コンテンツ フィルターを出力に適用できます。
commit 3214594、
commit
7bcf341 (2016 年 9 月 9 日)、
commit 7bcf341 (09 Sep 2016)、および
commit b9e62f6、
commit 16dcc29 (24 Aug 2016) by Johannes Schindelin ( dscho
)を参照してください。
( 2016 年 9 月 21 日、コミット 7889ed2でJunio C Hamanoによってマージされました)gitster
git config diff.txt.textconv "tr A-Za-z N-ZA-Mn-za-m <"
git cat-file --textconv --batch
注: " git cat-file --textconv
" は最近 (2017 年) セグメンテーション違反を開始しましたが、これは Git 2.15 (2017 年第 4 四半期) で修正されています。
Jeff King ( )によるcommit cc0ea7c (2017 年 9 月 21 日)を参照してください。( 2017 年 9 月 28 日、コミット bfbc2fcでJunio C Hamanoによってマージされました)peff
gitster