2016-07-30 4 views
2

私はこのような行を含むgit diff出力を持っています:ファイルごとにindex 0056c73..92c6cbd 100644。私はどのリポジトリから来るのか知っていますが、不幸にも、リポジトリの改訂版であるはそれに反しています。ファイルのリビジョンやgitリポジトリからのファイルハッシュの検索方法は?

差分が存在するリポジトリのコミットを見つけるにはどうすればよいですか?

また、diff内のプリイメージハッシュが対応する各ファイルの正確なコミットを見つけるにはどうすればよいですか? 0056c73がある場合

git log --all --pretty=format:%H <path> 

:あなたは、ファイルのパスがわかっている場合(つまり、どのファイルのバージョン上記の例で0056c73ハッシュを持っている)

答えて

1

、あなたが言ったパスのすべてのコミットの表示を開始することができますそのファイルのブロブSHA1、git ls-treeはすべてのエントリSHA1を表示し、後にあるものをgrepすることができます。

"Which commit has this blob?は" aragaerからこのワンライナーを提案している:

git log --all --pretty=format:%H <path> | xargs -n1 -I% sh -c "git ls-tree % <path> | grep -q <hash> && echo %" 

0056c73<hash>を置き換える)

関連する問題