Português (Brasil) ▾
Localized versions of git-diff-index manual
  1. English
  2. Português (Brasil)
  3. Русский
  4. українська мова
  5. 简体中文
Topics ▾ Latest version ▾ git-diff-index last updated in 2.52.0
Changes in the git-diff-index manual
  1. 2.52.0 2025年11月17日
  2. 2.51.1 → 2.51.2 no changes
  3. 2.51.0 2025年08月18日
  4. 2.48.1 → 2.50.1 no changes
  5. 2.48.0 2025年01月10日
  6. 2.46.1 → 2.47.3 no changes
  7. 2.46.0 2024年07月29日
  8. 2.45.4 no changes
  9. 2.45.3 2024年11月26日
  10. 2.45.1 → 2.45.2 no changes
  11. 2.45.0 2024年04月29日
  12. 2.44.1 → 2.44.4 no changes
  13. 2.44.0 2024年02月23日
  14. 2.43.1 → 2.43.7 no changes
  15. 2.43.0 2023年11月20日
  16. 2.42.2 → 2.42.4 no changes
  17. 2.42.1 2023年11月02日
  18. 2.42.0 2023年08月21日
  19. 2.41.1 → 2.41.3 no changes
  20. 2.41.0 2023年06月01日
  21. 2.40.1 → 2.40.4 no changes
  22. 2.40.0 2023年03月12日
  23. 2.37.3 → 2.39.5 no changes
  24. 2.37.2 2022年08月11日
  25. 2.36.1 → 2.37.1 no changes
  26. 2.36.0 2022年04月18日
  27. 2.35.1 → 2.35.8 no changes
  28. 2.35.0 2022年01月24日
  29. 2.34.1 → 2.34.8 no changes
  30. 2.34.0 2021年11月15日
  31. 2.33.1 → 2.33.8 no changes
  32. 2.33.0 2021年08月16日
  33. 2.32.1 → 2.32.7 no changes
  34. 2.32.0 2021年06月06日
  35. 2.31.1 → 2.31.8 no changes
  36. 2.31.0 2021年03月15日
  37. 2.30.1 → 2.30.9 no changes
  38. 2.30.0 2020年12月27日
  39. 2.29.1 → 2.29.3 no changes
  40. 2.29.0 2020年10月19日
  41. 2.28.1 no changes
  42. 2.28.0 2020年07月27日
  43. 2.25.2 → 2.27.1 no changes
  44. 2.25.1 2020年02月17日
  45. 2.25.0 2020年01月13日
  46. 2.24.1 → 2.24.4 no changes
  47. 2.24.0 2019年11月04日
  48. 2.22.1 → 2.23.4 no changes
  49. 2.22.0 2019年06月07日
  50. 2.21.1 → 2.21.4 no changes
  51. 2.21.0 2019年02月24日
  52. 2.20.1 → 2.20.5 no changes
  53. 2.20.0 2018年12月09日
  54. 2.19.1 → 2.19.6 no changes
  55. 2.19.0 2018年09月10日
  56. 2.18.1 → 2.18.5 no changes
  57. 2.18.0 2018年06月21日
  58. 2.17.1 → 2.17.6 no changes
  59. 2.17.0 2018年04月02日
  60. 2.16.6 2019年12月06日
  61. 2.15.4 2019年12月06日
  62. 2.14.6 2019年12月06日
  63. 2.13.7 2018年05月22日
  64. 2.12.5 2017年09月22日
  65. 2.11.4 2017年09月22日
  66. 2.10.5 no changes
  67. 2.9.5 2017年07月30日
  68. 2.8.6 2017年07月30日
  69. 2.7.6 no changes
  70. 2.6.7 2017年05月05日
  71. 2.5.6 2017年05月05日
  72. 2.4.12 2017年05月05日
  73. 2.3.10 2015年09月28日
  74. 2.1.4 → 2.2.3 no changes
  75. 2.0.5 2014年12月17日

Check your version of git by running

git --version

NOME

git-diff-index - Compara uma árvore com a árvore ou índice de trabalho

RESUMO

git diff-index [-m] [--cached] [--merge-base] [<opções-comuns-ao-diff>] <árvore> [<caminho>…​]

DESCRIÇÃO

Compare o conteúdo e o modo das bolhas encontradss num objeto árvore com os arquivos rastreados correspondentes na árvore de trabalho ou com os caminhos correspondentes no índice. Quando os argumentos <caminho> estiverem presentes, compare apenas os caminhos que correspondem a estes padrões. Caso contrário, todos os arquivos serão comparados.

OPÇÕES

Warning

Missing pt_BR/diff-options.adoc

See original version for this content.

<tree-ish>

A identificação de um objeto de árvore com a qual fazer o "diff".

--cached

Não considere de forma alguma o arquivo no disco.

--merge-base

Em vez de fazer a comparação direta de <tree-ish> , use a base mesclada entre <tree-ish> e HEAD. O <tree-ish> deve ser um commit.

-m

É predefinido que os arquivos registrados no índice, mas sem verificação, serão relatados como excluídos. Esta opção faz com que o comando git diff-index diga que todos os arquivos não verificados estão atualizados.

Warning

Missing pt_BR/diff-format.adoc

See original version for this content.

MODOS DE OPERAÇÃO

Você pode escolher se deseja confiar totalmente no arquivo no índice (usando o a opção --cached) ou solicitar que a lógica do diff mostre todos os arquivos que não correspondam ao estado de estatísticas como sendo "provisoriamente alterados". Ambas as operações são realmente úteis.

MODO EM CACHE

Caso --cached seja utilizado, será permitido que você pergunte:

mostre-me as diferenças atuais entre o HEAD e o índice
teor (os que eu escreveria utilizando 'git write-tree')

Digamos que você trabalhou no seu diretório de trabalho por exemplo e atualizou alguns arquivos no índice e está pronto para fazer o commit. Caso queira ver exatamente o quê será feito no commit, sem precisar escrever um novo objeto árvore e compará-lo dessa maneira, faça

git diff-index --cached HEAD

Exemplo: digamos que eu tenha renomeado o arquivo commit.c para git-commit.c e tenha feito um update-index para tornar isso efetivo no índice do arquivo. O comando git diff-files não mostraria nada, pois o índice do arquivo corresponde ao meu diretório de trabalho. Porém, ao o comando git diff-index ele faz:

torvalds@ppc970:~/git> git diff-index --cached HEAD
:100644 000000 4161aecc6700a2eb579e842af0b7f22b98443f74 0000000000000000000000000000000000000000 D	commit.c
:000000 100644 0000000000000000000000000000000000000000 4161aecc6700a2eb579e842af0b7f22b98443f74 A	git-commit.c

É possível ver facilmente que o item acima foi renomeado.

De fato, o comando git diff-index --cached deve sempre ser totalmente equivalente a fazer um git write-tree e comparar. Exceto que este é muito melhor para o caso onde você queira apenas averiguar onde você está.

Portanto, fazer um git diff-index --cached é basicamente muito mais útil quando você está se perguntando "o quê eu já marquei para ser feito o commit e qual a diferença com uma árvore anterior".

MODO SEM CACHE

O modo "non-cached" adota uma abordagem diferente sendo potencialmente o mais útil dos dois, pois o que ele faz não pode ser emulado com um git write-tree + git diff-tree. Assim sendo, este é o modo predefinido. A versão sem cache faz questiona:

mostre-me as diferenças entre o `HEAD` e o que foi verificado
tree - índice do conteúdo _e_ os arquivos que não estão atualizados

o que obviamente também é uma pergunta muito útil, pois isso indica qual commit você poderia fazer. Novamente, a saída coincidente à saída git diff-tree -r para um "tee", mas com uma desvantagem.

A desvantagem é que, caso algum arquivo não coincida com o índice, nós não temos uma uma estrutura de armazenamento para tanto e utilizamos a mágica do sha1 "zerado" para exibi-los. Então, digamos que você editou o arquivo kernel/sched.c, mas ainda não fez um git update-index nele - ainda não há um "objeto" associado a nova condição obtendo:

torvalds@ppc970:~/v2.6/linux> git diff-index --abbrev HEAD
:100644 100644 7476bb5ba 000000000 M	kernel/sched.c

isto é, exiba que a árvore mudou, que o kernel/sched.c não está atualizado e pode haver novas coisas. O sha1 zerado significa que, para obter um "diff" real, é necessário olhar diretamente para o objeto no diretório de trabalho, em vez de um "diff" de objeto para objeto.

Note
Como em outros comandos desse tipo, o git diff-index não analisa de forma alguma o conteúdo do arquivo. Então talvez o kernel/sched.c não tenha realmente mudado, e é só que você mexeu. Em ambos os casos, é importante observar que você precisa fazer um git update-index para sincronizar o índice.
Note
Você pode exibir junto uma mistura de arquivos como "foi atualizado" e "ainda está sujo no diretório de trabalho". Você sempre pode dizer qual arquivo está em qual condição, uma vez que os que "foram atualizados" exibam um sha1 válido e os "que não estão sincronizados com o índice" sempre terão o sha1 especial, zerados.

GIT

Parte do conjunto git[1]

AltStyle によって変換されたページ (->オリジナル) /