web-dev-qa-db-ja.com

特定のファイルへのすべてのコミットについてgit reflogをクエリする

特定のファイルへのすべてのコミットについてgit reflogを確認することは可能ですか?.

私はファイルfoo.txtにコミットしましたが、今ではgit履歴に表示されなくなりました

git log foo.txt

このファイルへのすべてのコミットを見つけるためにreflogを検索したいので、「失われた」コミットを見つけることができます。

49
cpjolicoeur

試してください:

git rev-list --all -- foo.txt

これにより、foo.txtを含むすべてのコミットのリストが表示されます。

50
ralphtheninja

簡単な答えを探しているときにこれに遭遇しました:git reflog -- $PATH、他の方法では表示されない修正およびその他のアクションが含まれます(ただし、reflogはgcによって除去されます)

26

私は使用します:

git rev-list --all --remotes --pretty=oneline foo.txt

--remotesオプションを使用すると、リモートも使用できます。--pretty = onelineを使用すると、コミットメッセージも表示されます。名前がわからないブランチでリモートにプッシュされた変更を探しているときに非常に役立ちます。

20
wdev

リベースで履歴をクリーンアップしているときに、変更を失いました。私はこのようなものを使用してreflogを検索しました:

for r in $(git reflog -- ${file} | cut -d ' ' -f1); do git show ${r}:${file}; done
0
glevand