Gostaria de ver uma lista de arquivos modificados desde a última confirmação, como git status
mostra, mas me importo apenas com arquivos localizados em um único diretório. Existe uma maneira de fazer isso? Eu tentei git status <directory>
, mas parece que isso faz algo completamente diferente (lista todos os arquivos alterados, como seriam se eu escrevesse git add <directory>
primeiro).
A documentação para o git-status não conta muito, exceto pelo fato de aceitar as mesmas opções que o git-commit (mas o objetivo do git-commit não é mostrar listas de arquivos alterados).
O motivo que
git status
leva as mesmas opçõesgit commit
é que o objetivogit status
é mostrar o que aconteceria se você se comprometesse com as mesmas opções para as quais passougit status
. A este respeitogit status
é realmentegit commit --preview
.Para obter o que deseja, você pode fazer o que mostra as alterações em etapas:
e isso, que mostra alterações sem etapas:
ou isso que mostra os dois:
fonte
git ls-files --others <directory_in_question>
ouls-files -o
.git ls-files -o
mostra arquivos em diretórios não estágios recursivamente, enquantogit status
mostra apenas o diretório de nível superior. E seria necessário comporgit diff
,git ls-files
produzir e recriar todo o código de cores, etc., quegit status
fornece se for para substituirgit status
. Eu também gostaria muito de ver uma solução para isso!Solução mais simples:
git status | grep -v '\.\.\/'
Claro que isso descarta cores.
fonte
Como uma observação, se você simplificar a verificação de estatísticas do git sem acessar o diretório git;
E chamando esse script simples:
gitstat /path/to/foo-project
. Você também pode usá-lo enquanto estáfoo-project
fazendogitstat .
e, portanto, suponha que seja menor quegit status -s
,git diff --stat
ougit diff --stat HEAD
se você estiver sempre usando console, em vez de GUI.Créditos:
fonte