Isso geralmente acontece comigo:
Estou trabalhando em algumas alterações relacionadas ao mesmo tempo ao longo de um dia ou dois e, quando é hora de confirmar, acabo esquecendo o que mudou em um arquivo específico. (Este é apenas um repositório pessoal do git, por isso estou bem em ter mais de uma atualização em um commit.)
Existe alguma maneira de visualizar as alterações entre o meu arquivo local, que está prestes a ser verificado, e a última confirmação desse arquivo?
Algo como:
git diff --changed /myfile.txt
E seria impresso algo como:
line 23
(last commit): var = 2+2
(current): var = myfunction() + 2
line 149
(last commit): return var
(current): return var / 7
Dessa forma, pude ver rapidamente o que havia feito naquele arquivo desde a última verificação.
git add -p
. Revise todas as alterações, aprove seletivamente as alterações para o estágio, aborte a qualquer momento, se você mudar de idéia, e até mesmo edite um pedaço em linha. Eu nuncagit add
sem ele.q
git config --global diff.noprefix true
.mostrará as alterações que você adicionou à sua árvore de trabalho desde a última confirmação. Todas as alterações (em etapas ou não em etapas) serão mostradas.
fonte
Para verificar diferenças locais:
ou você pode usar uma ferramenta diff (caso deseje reverter algumas alterações):
Para usar com
git difftool
mais eficiência, instale e use sua ferramenta GUI favorita, como Meld, DiffMerge ou OpenDiff.Nota: Você também pode usar
.
(em vez do nome do arquivo) para ver as alterações atuais do diretório.Para verificar as alterações de cada linha, use:
git blame
what que exibirá qual linha foi confirmada em qual confirmação.Para visualizar o arquivo real antes da confirmação (onde
master
está sua ramificação), execute:fonte
Você tentou
-v
(ou--verbose
) a opçãogit commit
? Ele adiciona o diff da confirmação no editor de mensagens.fonte
Changes not staged for commit:
que possa tornar o editor de confirmação mais limpo.Outra técnica a considerar se você deseja comparar um arquivo com o último commit, que é mais pedante:
A vantagem dessa técnica é que você também pode comparar com o penúltimo commit com:
e o antes disso:
Também é possível substituir '~' pelo caractere de interpolação '^' e 'you branch name' por 'master' se você não estiver na ramificação principal.
fonte
Eu acho que este é o caso de uso perfeito que justifica uma GUI. - Embora eu entenda totalmente que isso também pode ser alcançado dentro da linha de comando.
Pessoalmente, todo commit meu, eu faço do git-gui. No qual eu posso fazer vários commits atômicos com pedaços / linhas separados, se fizer sentido.
Gut Gui permite visualizar as diferenças em uma interface colorida bem formatada, é bastante leve. Parece que isso é algo que você deve fazer o checkout também.
fonte
git bisect
esse que não são realmente acessíveis.tig
"interface de modo de texto para o Git".No macOS, acesse o diretório raiz do git e digite
git diff *
fonte
A melhor maneira que encontrei, além de usar uma GUI de confirmação dedicada, é usar
git difftool -d
- Isso abre sua ferramenta diff no modo de comparação de diretório, comparando HEAD com a pasta suja atual.fonte
Isso mostra uma comparação usando a janela de fenda VI no terminal.
fonte