gitが歴史を通して学習したファイル名(パスを含む)のリストをどのように生成できますか?
答え1
素朴なソリューション:
git rev-list --all | xargs -n1 git ls-tree --full-name -r --name-only | sort -u
これにより、すべてのコミットが一覧表示され、それを使用して各コミットのすべてのファイルが一覧表示されます。重複した項目を並べ替えて削除します。ただし、時間がかかるため、小規模のストレージにのみ適用されます。
より良い解決策は、libgit2を使って同じことをすることです。より高速ですが、少しプログラミングが必要です。これを達成するためのクイックヒントは以下にあります。羽ハブから。これはpygit2を使用し、上記のシェルパイプラインよりはるかに高速です。