Git Tutorial - dif para comparar diferenças

  1. Verifique as diferenças entre a cópia de trabalho e o repositório
  2. Ferramentas externas de difusão do Git
  3. Verifique as diferenças entre a área de encenação e o Repositório

Vamos mostrar-lhe como visualizar as alterações ou diferenças entre a sua cópia de trabalho, que são os ficheiros em que está a trabalhar nos ficheiros principais, e o repositório. Na segunda parte, vamos demonstrar como comparar entre a área de encenação e o repositório.

Verifique as diferenças entre a cópia de trabalho e o repositório

Uma vez que salvamos um arquivo, este arquivo em uma cópia de trabalho é diferente do que está em nosso repositório. Mas como vemos exactamente estas alterações? Porque às vezes nós fizemos algumas mudanças em um arquivo e queremos ver o que está no repositório e isso acontece muito sempre que você está trabalhando com código porque você quer saber exatamente as mudanças que você está fazendo e como isso vai afetar o projeto principal.

Então a primeira coisa que podemos fazer é verificar o git status e você encontra um arquivo modificado, o que significa que é diferente do que está no projeto principal ou no repositório principal. Se você digitar o git diff e pressionar enter, ele vai mostrar as diferenças.

$ git diff
diff --git a/test1.txt b/test1.txt
index e1dd8e3..448ad04 100644
--- a/test1.txt
+++ b/test1.txt
@@ -1,2 +1,2 @@
-This is my first Git repository.
-New added text.
\ No newline at end of file
+This was my first Git repository.
+This line is updated.
\ No newline at end of file

O texto vermelho na bash do git mostra o que está no repositório e o verde indica como o texto é modificado.

Se você tiver mais arquivos atualizados após a última submissão, o git listará as diferenças de arquivo uma a uma.

Ferramentas externas de difusão do Git

Se você não está acostumado a usar a ferramenta padrão diff, você pode configurar o difftool para aquele que você preferir.

Nós lhe mostraremos como configurar o kdiff3 como a ferramenta diff, merge do git.

Alterar o diretório de arquivos .gitconfig

No Windows OS, abra o arquivo .gitconfig no diretório C:\Users\username e anexe o texto ao arquivo,

[diff]
    tool = kdiff3
[difftool "kdiff3"]
    path = "C:/Program Files/KDiff3/kdiff3.exe"
    trustExitCode = false
[difftool]
    prompt = false
[merge]
    tool = kdiff3
[mergetool "kdiff3"]
    path = "C:/Program Files/KDiff3/kdiff3.exe"
    trustExitCode = false
[mergetool]
    keepBackup = false

Aqui, path é o caminho instalado do kdiff3, e pode ser diferente do seu lado.

Configure o difftool via git bash

Você poderia configurar o difftool ou mergetool utilizando o comando em git bash, também.

git config --global --add merge.tool kdiff3
git config --global --add mergetool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"
git config --global --add mergetool.kdiff3.trustExitCode false

git config --global --add diff.guitool kdiff3
git config --global --add difftool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"
git config --global --add difftool.kdiff3.trustExitCode false

Ele tem feito basicamente a mesma coisa que você modifica o conteúdo do arquivo .gitconfig.

Verifique as diferenças entre a área de encenação e o Repositório

Você poderia usar o comando git difftool para revisar a diferença de arquivo entre aquela na sua cópia de trabalho e aquela no repositório.

Git Difftool-kdiff3

git diff mostra a diferença entre a cópia de trabalho e o repositório, e após o arquivo já estar adicionado à área de encenação, o git diff não mostrará nenhuma diferença deste arquivo porque ele não compara a área de encenação com o repositório, então é por isso que parece que tudo está atualizado, mesmo que este arquivo ainda seja diferente do que está no seu repositório.

O comando certo para comparar a área de encenação é e o repositório é adicionar a opção --staged atrás da opção git diff.

$ git diff --staged
diff --git a/test1.txt b/test1.txt
index e1dd8e3..448ad04 100644
--- a/test1.txt
+++ b/test1.txt
@@ -1,2 +1,2 @@
-This is my first Git repository.
-New added text.
\ No newline at end of file
+This was my first Git repository.
+This line is updated.
\ No newline at end of file