Existe uma maneira de listar todos os arquivos atualmente sob controle de origem no git? (Não apenas aqueles que foram modificados).
Responder1
Se você deseja listar todos os arquivos de um branch específico, por exemplo master
:
git ls-tree-r mestre --somente nome
A -r
opção permitirá que ele recorra aos subdiretórios e imprima cada arquivo atualmente sob controle de versão. Você também pode especificar HEAD
em vez de master
obter a lista de qualquer outro ramo em que possa estar.
Se você deseja obter uma lista de todos os arquivos que já existiram,Veja aqui:
registro do git--pretty=formato: --name-only --diff-filter=A | classificar -você
Responder2
O git ls-files
comando fará o que você precisa.
Fonte:http://www.kernel.org/pub/software/scm/git/docs/git-ls-files.html
Responder3
git ls-files
imprimirá apenas arquivos no diretório de trabalho atual.
Se, por exemplo, você tiver um repositório git para dotfiles ( core.worktree = /
), então você terá arquivos fora do git root e esse comando simples não funcionará mais.
Resumindo, isso funcionará:
git --git-dir "`git rev-parse --git-dir`" \
-C "`git config core.worktree || pwd`" \
ls-files
Exemplo:
mkdir ~/dotfiles
cd ~/dotfiles
git config core.worktree /
# Ignore all files by default, else Git will find all files under "/"
echo "*" > .git/info/exclude
# Add files at the git repo's root and somewhere in the work tree
touch README
git add -f README
git add -f /etc/ssh/sshd_config
# `git status` would now print:
# new file: ../../../etc/ssh/sshd_config
# new file: README
git status
git commit -m "Initial commit"
# At this point, `git ls-files` prints only:
# README
git ls-files
# But you can print all files inside the work tree. This will print:
# etc/ssh/sshd_config
# home/yourusername/dotfiles/README
git --git-dir "`git rev-parse --git-dir`" -C "`git config core.worktree || pwd`" ls-files
Se você quiser caminhos especificadosrelativopara o seu diretório atual (shell), isso resolve o problema:
alias gls='git ls-tree -r master --name-only HEAD "`git config core.worktree`"'
e no exemplo acima, seria impresso
README
../../../etc/ssh/sshd_config
Responder4
Por favor, dê uma olhada na imagem, no lado direito existem duas opções patch e Tree. Se você selecionar árvore, poderá visualizar a estrutura de pastas de cada commit.