é possível `git status` apenas arquivos modificados?
173
É possível git statuse mostrar apenas arquivos modificados?
O problema é que tenho muitos arquivos temporários que não quero confirmar ou fazer gitignore no momento e não consigo rolar para cima. Eu tenho um limite de rolagem definido no Ubuntu.
Como você tem um limite de rolagem? Por padrão, git statuschamará o pager.
Lily Ballard
Desculpe, o limite de rolagem está definido para 512 linhas na minha máquina. Eu acho que eu poderia mudar isso; mas preferiria um comando de uma linha para exibir apenas os arquivos modificados no status, porque o GD / imagecache eventualmente gerará ainda mais arquivos.
Chrisjlee #
1
Certo ... meu argumento é que o pager não usa o scrollback do seu terminal.
Lily Ballard
Algo errado com apenas grepping para o que você achar interessante? Use --shortou --porcelainpara obter versões de uma linha do status.
Torek #
2
Mais um ponto, com base na sugestão de uso git ls-files -m: com quais modificações você se importa, em etapas, em etapas ou em ambas?
Torek 04/04/12
Respostas:
268
Não é possível fazer isso git status, mas você pode usar git ls-files -mpara mostrar todos os arquivos modificados.
Para que outros saibam, isso mostrará apenas arquivos que foram modificados sem ainda serem testados.
Gerry
11
Embora essa seja a resposta aceita, ela possui informações imprecisas. Você pode "'status modificado pelo git' apenas arquivos modificados", git status | grep modifiedcomo indica o usuário23186 na resposta.
K. Alan Bates
9
Para mim, git ls-files -mnão está mostrando nada, mas git status | grep modifiedestá funcionando.
Sandeepan Nath
1
Como outros já apontaram, isso mostra apenas arquivos não estágios. Se você quer mostrar tanto unstaged e encenado arquivos, esta é a melhor resposta que eu vi: stackoverflow.com/a/39994894/452587
thdoan
1
@ thdoan Há várias opções para mostrar arquivos em estágios, embora essa pergunta em particular pareça excluir explicitamente os arquivos em estágios. git diff --name-only --diff-filter=M HEADmostraria apenas os arquivos modificados para os estágios e não, embora você deva verificar os documentos --diff-filterpara ver quais outros tipos de filtro você deseja adicionar.
Lily Ballard
57
Parece que git status -unoirá mostrar apenas os arquivos que o git está rastreando, sem mostrar mais nada no diretório. Não é exatamente o que você pediu, mas talvez faça o mesmo (obtendo uma lista de arquivos legíveis que o git rastreia).
git status -u nonão mostra (1) arquivos rastreados que são modificados, nem (2) arquivos rastreados que são preparados. Eu verifiquei isso com as versões 1.8.5.2 e 1.9.4 do git.
Eu uso git cola. É um cliente de interface do usuário simples e elegante que mostra os arquivos modificados e fornece uma imagem diferente das alterações que você fez.
git colafornece uma GUI na qual você pode visualizar quais arquivos você modificou, quais preparou e até mesmo aqueles que não acompanha. Sua pergunta era usar apenas o status git, acredito, mas achei que o git cola pode ajudar quando isso e outras coisas também. Verifique esta página da Web em mais informações: git-cola.github.com/screenshots.html
Você poderia fornecer como isso se relaciona com a minha resposta, dado que eu não estou familiarizado com este Git Cola. por exemplo, capturas de tela ou mais detalhes?
Chrisjlee #
é por isso que foi rebaixado? :) De qualquer forma, o git cola fornece uma GUI onde você pode visualizar os arquivos que modificou, os que preparou e até os que não acompanha. Sua pergunta era usar apenas o status git, acredito, mas achei que o git cola pode ajudar quando isso e outras coisas também. Marque esta página web a partir de mais informação: git-cola.github.com/screenshots.html
n_x_l
Como mudar o idioma da interface da cola?
ziyuang
0
Se você quiser listar os arquivos modificados, faça o seguinte:
git status
chamará o pager.--short
ou--porcelain
para obter versões de uma linha do status.git ls-files -m
: com quais modificações você se importa, em etapas, em etapas ou em ambas?Respostas:
Não é possível fazer isso
git status
, mas você pode usargit ls-files -m
para mostrar todos os arquivos modificados.fonte
git status | grep modified
como indica o usuário23186 na resposta.git ls-files -m
não está mostrando nada, masgit status | grep modified
está funcionando.git diff --name-only --diff-filter=M HEAD
mostraria apenas os arquivos modificados para os estágios e não, embora você deva verificar os documentos--diff-filter
para ver quais outros tipos de filtro você deseja adicionar.Parece que
git status -uno
irá mostrar apenas os arquivos que o git está rastreando, sem mostrar mais nada no diretório. Não é exatamente o que você pediu, mas talvez faça o mesmo (obtendo uma lista de arquivos legíveis que o git rastreia).fonte
git status -u no
não mostra (1) arquivos rastreados que são modificados, nem (2) arquivos rastreados que são preparados. Eu verifiquei isso com as versões 1.8.5.2 e 1.9.4 do git.git status -uno
( stackoverflow.com/questions/7008546/… )fonte
awk '$1 == "M" { print $2 }'
Para arquivos modificados:
fonte
git config --global alias.modified '!git status | grep modified:'
git diff --name-only --diff-filter=M
fonte
git diff --cached --name-only --diff-filter=ACMR
que contém arquivos adicionados, copiados, modificados e renomeados.git diff --name-only
funciona tambémfonte
Eu estava procurando a mesma informação e encontrei a seguir fornece arquivos modificados:
fonte
git status -uno --porcelain
acrescenta saída agradável para analisar roteiroVocê pode usar
para listar apenas arquivos modificados.
fonte
Embora isso possa não responder diretamente à questão de listar apenas arquivos modificados, pode ajudar a limitar o número de arquivos listados.
Você pode passar um caminho para
git status
limitar a saída para uma pasta específica no repositório.Por exemplo:
fonte
Para listar os arquivos modificados, use:
Se você quiser apenas o nome da base (sem caminho), poderá canalizar cada resultado para o comando basename usando xargs, linha por linha:
fonte
Eu uso este comando:
E a saída é assim:
fonte
Eu uso
git cola
. É um cliente de interface do usuário simples e elegante que mostra os arquivos modificados e fornece uma imagem diferente das alterações que você fez.git cola
fornece uma GUI na qual você pode visualizar quais arquivos você modificou, quais preparou e até mesmo aqueles que não acompanha. Sua pergunta era usar apenas o status git, acredito, mas achei que o git cola pode ajudar quando isso e outras coisas também. Verifique esta página da Web em mais informações: git-cola.github.com/screenshots.htmlfonte
Se você quiser listar os arquivos modificados, faça o seguinte:
git log -n1 --oneline --name-status | grep '^M'
fonte
Para listar todos os arquivos modificados, use:
fonte
Todas ótimas respostas; apenas FEI, "git checkout" (alternando para ou no mesmo ramo) parece mostrar apenas arquivos modificados.
fonte
SO: windows
O comando a seguir exibirá todas as linhas que contêm "modificado:" , "renomeado:" ou "novo arquivo:"
Se você deseja especificar o tipo de arquivo: (por exemplo
*.py
*.ini
)Se você acha que é demais digitar muito:
crie um arquivo em lotes (por exemplo
st.bat
:)escreva o conteúdo da seguinte forma:
adicione o caminho do ambiente que contém seu arquivo em lotes. (
st.bat
)uso
(nota: se digite> 1, adicione o ponto e vírgula)
OS: LINUX
como @Lance diz que você pode tentar
git status | grep modified:
fonte