Eu gostaria de obter uma lista apenas dos nomes de arquivos preparados. Não consigo encontrar a bandeira equivalente --name-only
para o git status
comando. Qual é uma boa alternativa?
A lista de arquivos será canalizada para php -l
(verificador de sintaxe PHP lint).
Solução: o comando completo
git diff --name-only --cached | xargs -l php -l
git
git-status
Ward Bekker
fonte
fonte
Respostas:
Use
git diff --name-only
(com--cached
para obter os arquivos de teste)fonte
A resposta aceita não permitirá que você saiba que tipo de mudanças ocorreram.
Sim, se você não é um verificador de sintaxe, mas uma pessoa comum com um repositório cheio de arquivos não testados e ainda deseja saber o que acontecerá com os arquivos testados - há outro comando:
o que leva a algo como:
Obviamente, esses arquivos foram testados, e depois
git commit
:deleted_file
serão excluídos,new_file
serão adicionados,renamed_file
se tornarão umrenamed_to
.Aqui está uma explicação da saída de formato curto: https://git-scm.com/docs/git-status#_short_format
fonte
Inspirado pela resposta de @ coffman21 , configurei o seguinte alias em meu
.zshrc
alias gst="git status" alias gst-staged="git status --short | grep '^\w'" alias gst-unstaged="git status --short | grep '^\W'" alias gst-unstaged-tracked="git status --short | grep '^\s'" alias gst-untracked="git status --short | grep '^??'"
Pode ser útil para qualquer outra pessoa. Então, adicionando-o à pilha de respostas.
fonte
.
em grep, para colorir os 2 caracteres iniciais, como:grep '^\w.'
,grep '^\W.'
,grep '^\s.'
para ver arquivos de teste com mudanças de código
ou usando --cached que é sinônimo de --staged
ou para ver apenas nomes de arquivos sem alterações de código
manual git-diff
fonte