あなた自身の答えを完成させるために、構文は確かに
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 2.23以降(2019年8月)では、紛らわしいコマンドの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
)
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はリビジョン$ REVの$ fileのオブジェクトIDをリストします。これは出力から切り取られ、git-cat-fileへの引数として使用されます。これは実際にはgit-cat-objectと呼ばれ、単純にダンプされます。そのオブジェクトを標準出力に。
注:Git 2.11(2016年第4四半期)以降、コンテンツフィルターをgit cat-file
出力に適用できます!
参照してください。3214594コミット、7bcf341コミット、(2016年9月9日)を7bcf341コミット(2016年9月9日)、およびb9e62f6コミット、16dcc29コミットすることにより(2016年8月24日)ヨハネスSchindelinを(dscho
)。
(合併によりJunio C浜野- gitster
-で7889ed2コミットし、2016年9月21日)を
cat-file
:サポート--textconv
/ --filters
バッチモード
「git hash-objects
」はファイルシステム上のデータストリームを取得してGitオブジェクトストアに配置するツールですが、「outside-world-to-Git」変換(行末変換やアプリケーションなど)を実行できますクリーンフィルター)の機能であり、非常に早い時期からデフォルトで機能がオンになっていたためgit cat-file
、Gitオブジェクトストアからオブジェクトを取得して外部からの消費のために外部化するその逆の操作 " "には、同等のメカニズムがありませんでした。 「Git-to-outside-world」を実行する
git config diff.txt.textconv "tr A-Za-z N-ZA-Mn-za-m <"
git cat-file --textconv --batch
注:「git cat-file --textconv
」は最近(2017年)segfaultingを開始しましたが、Git 2.15(2017年第4四半期)で修正されました。
Jeff King()によるcommit cc0ea7c(2017年9月21日)を参照してください。(による合併Junio C浜野- -でコミットbfbc2fc、2017年9月28日)peff
gitster
することを注意上書き/置き換え過去のコンテンツを持つファイル、あなたは使用しないでください混乱git checkout
コマンドをもうが、git restore
(Gitの2.23+、2019年8月)
git restore -s <SHA1> -- afile
これは、「ソース」(-s
)コミットSHA1に存在するファイルのみを作業ツリーに復元します。
インデックスも復元するには:
git restore -s <SHA1> -SW -- afile
(-SW
:の略--staged --worktree
)
git show
役に立たない)コロン付きの異なる構文を使用します。git show 2c7cf:my_file.txt