git - diff das mudanças atuais antes de confirmar

106

Eu mudei vários arquivos em um repositório git, mas não os enviei ainda.

Posso obter uma lista das alterações apenas invocando git status. Mas como faço para obter uma lista das linhas ou do conteúdo que alterei, além dos nomes dos arquivos?

Eu inicialmente pensei em usar git diff , mas parece ser útil apenas para comparar mudanças já confirmadas.

Normalmente eu apenas faço meld ., mas neste caso estou conectado a um servidor externo via ssh.

kikito
fonte

Respostas:

153

git diffpor padrão mostra a diferença entre seu diretório de trabalho e o índice ( área de teste para o próximo commit).

Se você já adicionou ( preparou ) as alterações à área de preparação , git diff --stagedo trabalho está feito. A área de teste são os dados a partir dos quais o próximo commit será formado git commit.

PS Boa leitura (IMO) para iniciantes em Git:

Mischa Arefiev
fonte
O teste não se aplica apenas a arquivos ainda não adicionados? Pensei que você tinha que usar o sinalizador em cache.
pbond
4
@peterbond man git-diffdiz--staged is a synonym of --cached
Mischa Arefiev
2
@peterbond técnica encenado meios adicionados para a área de teste que ainda não é uma confirmação. Esclareço isso na edição.
Mischa Arefiev
1
@Mischa A documentação diz que o comportamento padrão para git diffé calcular a diferença entre o diretório de trabalho e o índice , nãoHEAD
Axel
Não me ocorreu invocar git diff sem parâmetros. Obrigado!
kikito
10

O que eu uso nesses casos é:

git diff HEAD *

Isso mostrará as mudanças desde o último commit. Embora de alguma forma funcione mais rápido com

git diff .

ou

git diff

Para ver as alterações em git addarquivos editados anteriormente , use a stagedsinalização:

git diff --staged
EliuX
fonte