Git Tutorial - dif para comparar diferenças
- Verifique as diferenças entre a cópia de trabalho e o repositório
- Ferramentas externas de difusão do Git
- 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 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
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook