Como mostrar alterações não confirmadas no Git e algumas diferenças do Git em detalhes


202

Como mostro alterações não confirmadas no Git?

Eu STFW'ed , e estes comandos não estão funcionando:

teyan@TEYAN-THINK MINGW64 /d/nano/repos/PSTools/psservice (teyan/psservice)
$ git status
On branch teyan/psservice
Your branch is up-to-date with 'origin/teyan/psservice'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   psservice.c
        modified:   psservice.vcxproj.filters


teyan@TEYAN-THINK MINGW64 /d/nano/repos/PSTools/psservice (teyan/psservice)
$ git diff

teyan@TEYAN-THINK MINGW64 /d/nano/repos/PSTools/psservice (teyan/psservice)
$ git diff master
fatal: ambiguous argument 'master': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

Respostas:


370

Como mostrar alterações não confirmadas no Git

O comando que você está procurando é git diff.

git diff - Mostrar alterações entre confirmações, confirmação e árvore de trabalho, etc


Aqui estão algumas das opções expostas que você pode usar

git diff(sem parâmetros)
Imprima as diferenças entre o diretório ativo e o índice.

git diff --cached:
Imprima diferenças entre o índice e HEAD (confirmação atual).

git diff HEAD:
Imprima as diferenças entre o diretório de trabalho e o HEAD.

git diff --name-only
Mostrar apenas nomes de arquivos alterados.

git diff --name-status
Mostrar apenas nomes e status dos arquivos alterados.

git diff --color-words
Diferença palavra por palavra em vez de linha por linha.

Aqui está uma amostra da saída para git diff --color-words:

insira a descrição da imagem aqui


insira a descrição da imagem aqui


2
Quando você vê o cólon pronta no final, isso significa git mostrou a primeira página - pressione enter para percorrer as outras mudanças (como você pode com cat arquivo | mais)
ponteiro NULL

42

Você já organizou as alterações (presumivelmente executando git add), portanto, para obter o diff, é necessário executar:

git diff --cached

(Uma planície git diffmostrará apenas alterações sem etapas.)

Por exemplo: Exemplo de uso em cache do git diff


0

Para mim, a única coisa que funcionou é

git diff HEAD

incluindo os arquivos temporários, git diff --cachedmostra apenas os arquivos temporários.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.