特定のファイルへのすべてのコミットについてgit reflogを確認することは可能ですか?.
私はファイルfoo.txtにコミットしましたが、今ではgit履歴に表示されなくなりました
git log foo.txt
このファイルへのすべてのコミットを見つけるためにreflogを検索したいので、「失われた」コミットを見つけることができます。
試してください:
git rev-list --all -- foo.txt
これにより、foo.txtを含むすべてのコミットのリストが表示されます。
簡単な答えを探しているときにこれに遭遇しました:git reflog -- $PATH
、他の方法では表示されない修正およびその他のアクションが含まれます(ただし、reflogはgcによって除去されます)
私は使用します:
git rev-list --all --remotes --pretty=oneline foo.txt
--remotesオプションを使用すると、リモートも使用できます。--pretty = onelineを使用すると、コミットメッセージも表示されます。名前がわからないブランチでリモートにプッシュされた変更を探しているときに非常に役立ちます。
リベースで履歴をクリーンアップしているときに、変更を失いました。私はこのようなものを使用してreflogを検索しました:
for r in $(git reflog -- ${file} | cut -d ' ' -f1); do git show ${r}:${file}; done