Como mostrar todos os arquivos que git conhece?

6

Como posso produzir uma lista de nomes de arquivos (incluindo caminhos) que você conhece ao longo de toda a história?

    
por timmy 17.12.2012 / 13:06

1 resposta

8

Solução ingênua:

git rev-list --all | xargs -n1 git ls-tree --full-name -r --name-only  | sort -u

Isto lista todos os commits, então usa isso para listar todos os arquivos em cada commit. classificar deduplica. Funciona apenas para reposições small-ish embora demore muito tempo.

Uma solução melhor seria usar o libgit2 para fazer o mesmo, deveria ser mais rápido, mas requer alguma programação. Um rápido hack que implementa isso pode ser encontrado no no github . Ele usa o pygit2 e é uma ordem de grandeza mais rápida que o pipeline do shell acima.

    
por 17.12.2012 / 13:16

Tags