Isso funciona para o git show também. git show --name-only SHA1.
August Lilleaas
78
git diff --name-status [TAG|SHA1]mostra quais operações foram feitas nos arquivos também
reconbotou 28/09
2
você também pode fazer: git diff --name-only HEAD @ {3} HEAD @ {0} para as confirmações exatas que você deseja comparar.
b01 29/11
7
@AugustLilleaas realmente utilizando a apresentação só irá mostrar os 2 commits específicos, se você tem commits entre os 2 que será deixado de fora
chrisan
4
Conforme observado abaixo, git diff --name-statusparece não querer mostrar arquivos adicionados. @sschuberth apontou git show, que parece funcionar corretamente para mim: git show --pretty=format: --name-status. Apenas fazendo git show --name-statusdá um pouco mais informação, mas ainda agradável e densa ... que vai ser meu novo comando Goto;)
travc
417
git diff --name-status [SHA1 [SHA2]]
é como --name-only, exceto que você obtém um prefixo simples informando o que aconteceu com o arquivo (modificado, excluído, adicionado ...)
git log --name-status --oneline [SHA1..SHA2]
é semelhante, mas as confirmações são listadas após a mensagem de confirmação, para que você possa ver quando um arquivo foi alterado.
se você estiver interessado no que aconteceu com determinados arquivos / pastas, pode anexar -- <filename> [<filename>...]à git logversão.
se você quiser ver o que aconteceu com uma única confirmação, chame-a de SHA1 e faça git log --name-status --oneline [SHA1^..SHA1]
Sinalizadores de status do arquivo:
M modificado - O arquivo foi modificado
C copy-edit - O arquivo foi copiado e modificado
R rename-edit - O arquivo foi renomeado e modificado
A adicionado - O arquivo foi adicionado
D excluído - O arquivo foi excluído
U O arquivo tem conflitos após uma mesclagem
Por acaso, digo git diff --name-status e deu o 'arquivo adicionado'.
aartist
1
Para o git log, ele precisa ter dois pontos entre os SHAs, como SHA1..SHA2, e o segundo SHA não é opcional, portanto, deve ser assim: git log --name-status --oneline [SHA1 .. SHA2]
twasbrillig
Existe uma maneira de excluir certos arquivos / determinados tipos de arquivo?
ago
3
A --relative[=<path>]opção pode ajudá-lo, não tenho certeza. Caso contrário, há sempre | erep -v '(.tmp|.foo|.dontwant)$'... #
Isso foi realmente útil! Eu gostaria de poder simplesmente dizer git diffstatus masterou algo semelhante, que desencadeia o acima.
oma
3
Or git show --pretty=format: --name-only origin/master...
precisa saber é o seguinte
Talvez você não consiga torná-lo um alias do git, mas definitivamente pode colocá-lo no seu .bashrc.
25416 Fred Fred
3
Ou ainda mais simples: git diff --name-only HEAD...master(observe os três pontos). Para uma explicação detalhada, veja aqui .
ostrokach
1
Parece a resposta mais correta! Simples git diff --name-only master..branchnão corresponde à lista PR do github. Desta forma, mais preciso. Mas de qualquer maneira eu tenho 173 arquivos cantados vs 171 no github PR. (sem merge-baseeu ter 228 vs 171)
x'ES
21
Para complementar a resposta de @ artfulrobot, se você quiser mostrar os arquivos alterados entre dois ramos:
git diff --name-status mybranch..myotherbranch
Tenha cuidado na precedência. Se você colocar o ramo mais novo primeiro, ele mostrará os arquivos como excluídos em vez de adicionados.
Adicionar um greppode refinar ainda mais as coisas:
Regexes são bons e pode realmente fazer quase qualquer coisa. Neste caso, no entanto, também existe o --diff-filterque fornece essa funcionalidade nativamente, o que significa menos chances de resultados incorretos (por exemplo, falsos positivos).
Jasper
8
Adicione o alias abaixo ao seu e ~/.bash_profile, em seguida, execute source ~/.bash_profile; agora a qualquer momento, você precisa ver os arquivos atualizados no último commit, run, a showfilespartir do seu repositório git.
alias showfiles='git show --pretty="format:" --name-only'
git log --pretty=onelinedá-me apenas o SHA e a mensagem de confirmação usando o git 2.10.1
damd
3
Como artfulrobot disse em sua resposta:
git diff --name-status [SHA1 [SHA2]]
Meu exemplo:
git diff --name-status 78a09k12067c24d8f117886c4723ccf111af4997
4b95d595812211553070046bf2ebd807c0862cca
M views/layouts/default.ctp
M webroot/css/theme.css
A webroot/img/theme/logo.png
Com base em git diff --name-statuseu escrevi a extensão git-diffview git que processa uma visualização em árvore hierárquica do que mudou entre dois caminhos.
Respostas:
em que você só precisa incluir o SHA suficiente para identificar as confirmações. Você também pode fazer, por exemplo
para ver as diferenças entre a décima última confirmação e a quinta mais recente (mais ou menos).
fonte
git show --name-only SHA1
.git diff --name-status [TAG|SHA1]
mostra quais operações foram feitas nos arquivos tambémgit diff --name-status
parece não querer mostrar arquivos adicionados. @sschuberth apontougit show
, que parece funcionar corretamente para mim:git show --pretty=format: --name-status
. Apenas fazendogit show --name-status
dá um pouco mais informação, mas ainda agradável e densa ... que vai ser meu novo comando Goto;)é como --name-only, exceto que você obtém um prefixo simples informando o que aconteceu com o arquivo (modificado, excluído, adicionado ...)
é semelhante, mas as confirmações são listadas após a mensagem de confirmação, para que você possa ver quando um arquivo foi alterado.
se você estiver interessado no que aconteceu com determinados arquivos / pastas, pode anexar
-- <filename> [<filename>...]
àgit log
versão.se você quiser ver o que aconteceu com uma única confirmação, chame-a de SHA1 e faça
git log --name-status --oneline [SHA1^..SHA1]
Sinalizadores de status do arquivo:
M modificado - O arquivo foi modificado
C copy-edit - O arquivo foi copiado e modificado
R rename-edit - O arquivo foi renomeado e modificado
A adicionado - O arquivo foi adicionado
D excluído - O arquivo foi excluído
U O arquivo tem conflitos após uma mesclagem
fonte
--relative[=<path>]
opção pode ajudá-lo, não tenho certeza. Caso contrário, há sempre| erep -v '(.tmp|.foo|.dontwant)$'
... #Parece que ninguém mencionou a opção
--stat
:Há também
--numstat
e
--shortstat
fonte
Mas, para ver os arquivos alterados entre o seu ramo e seu ancestral comum com outro ramo (por exemplo, origem / mestre):
fonte
git diffstatus master
ou algo semelhante, que desencadeia o acima.git show --pretty=format: --name-only origin/master..
.git diff --name-only HEAD...master
(observe os três pontos). Para uma explicação detalhada, veja aqui .git diff --name-only master..branch
não corresponde à lista PR do github. Desta forma, mais preciso. Mas de qualquer maneira eu tenho 173 arquivos cantados vs 171 no github PR. (semmerge-base
eu ter 228 vs 171)Para complementar a resposta de @ artfulrobot, se você quiser mostrar os arquivos alterados entre dois ramos:
Tenha cuidado na precedência. Se você colocar o ramo mais novo primeiro, ele mostrará os arquivos como excluídos em vez de adicionados.
Adicionar um
grep
pode refinar ainda mais as coisas:Isso mostrará apenas os arquivos adicionados
myotherbranch
.fonte
--diff-filter
que fornece essa funcionalidade nativamente, o que significa menos chances de resultados incorretos (por exemplo, falsos positivos).Adicione o alias abaixo ao seu e
~/.bash_profile
, em seguida, executesource ~/.bash_profile
; agora a qualquer momento, você precisa ver os arquivos atualizados no último commit, run, ashowfiles
partir do seu repositório git.fonte
git config --global alias.showfiles 'show --pretty="format:" --name-only'
para fazergit showfiles
.Isso mostrará as alterações nos arquivos:
fonte
Observe também, se você deseja apenas ver os arquivos alterados entre o último commit e o anterior. Isso funciona bem:
git show --name-only
fonte
Use git log --pretty = oneline> C: \ filename.log
que registrará apenas um on-line (--pretty = on-line) que é o nome do arquivo alterado. Também registrará todos os detalhes no seu arquivo de saída.
fonte
git log --pretty=oneline
dá-me apenas o SHA e a mensagem de confirmação usando o git 2.10.1Como artfulrobot disse em sua resposta:
Meu exemplo:
fonte
Apenas para alguém que precisa se concentrar apenas em arquivos Java, esta é a minha solução:
fonte
O seguinte funciona bem para mim:
$ git show --name-only --format=tformat: SHA1..SHA2
Também pode ser usado com um único commit:
git show --name-only --format=tformat: SHA1
o que é útil para uso no Jenkins, onde você recebe uma lista de SHAs de changeSet e deseja iterar sobre eles para ver quais arquivos foram alterados.
Isso é semelhante a algumas das respostas acima, mas usar
tformat:
ao invés deformat:
remover o espaço separador entre confirmações.fonte
Com base em
git diff --name-status
eu escrevi a extensão git-diffview git que processa uma visualização em árvore hierárquica do que mudou entre dois caminhos.fonte