Git diff om verschillen te vergelijken

  1. Controleer verschillen tussen werkkopie en de gegevensopslagruimte
  2. Git diff externe tools
  3. Controleer verschillen tussen Staging Area en de Repository

We laten u zien hoe u de wijzigingen of verschillen tussen uw werkkopie kunt bekijken, dit zijn de bestanden waaraan u in de hoofdbestanden werkt en de repository. In het tweede deel zullen we laten zien hoe te vergelijken tussen het staging-gebied en de repository.

Controleer verschillen tussen werkkopie en de gegevensopslagruimte

Nadat we een bestand hebben opgeslagen, is dit bestand op een werkkopie anders dan dat in onze repository. Maar hoe zien we deze veranderingen precies? Omdat we soms een aantal wijzigingen in een bestand hebben aangebracht en we willen het bestand in de repository bekijken en dit gebeurt veel wanneer u met code werkt, omdat u precies wilt weten welke wijzigingen u aan het doen bent en hoe dit de hoofdproject.

Dus het eerste dat we kunnen doen, is het controleren git status en u ziet dat één bestand is gewijzigd, wat betekent dat het anders is dan dat in het hoofdproject of de hoofdrepository. Als je typt git diff en op enter drukt, laat het je de verschillen zien.

$ 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

De rode tekst in de git bash laat zien wat er in de repository staat en de groene geeft aan hoe de tekst is gewijzigd.

Als je meer bestanden hebt bijgewerkt na de laatste vastlegging, Git worden de bestandsverschillen één voor één vermeld.

Git diff externe tools

Als je niet gewend bent geraakt aan het standaardgereedschap diff , kun je het configureren difftool naar degene die je verkiest.

We zullen u laten zien hoe te configureren kdiff3 als de diff , merge tool van Git.

Wijzig de .gitconfig bestandsmap

Open in Windows OS het .gitconfig bestand in de map C:\Users\username en voeg de tekst toe aan het bestand,

[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

Hier path is het geïnstalleerde pad van kdiff3 , en het kan aan jouw kant anders zijn.

Configureer difftool via git bash

Je zou de difftool of kunnen configureren mergetool met de opdracht in git bash, ook.

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
git config --global --add difftool.prompt false

Het heeft in principe hetzelfde gedaan als het wijzigen van de .gitconfig bestandsinhoud.

Controleer verschillen tussen Staging Area en de Repository

Je kan de git difftool opdracht gebruiken om het bestandsverschil tussen dat in uw werkkopie en dat in de repository te bekijken.

Git Difftool-kdiff3

git diff toont het verschil tussen de werkkopie en de repository, en nadat het bestand al is toegevoegd aan het staging-gebied, git diff zal het geen verschil van dit bestand tonen omdat het het staging-gebied niet wordt vergeleken met de repository, dus daarom ziet het eruit als alles is up-to-date, hoewel dit bestand nog steeds anders is dan het bestand in uw gegevensopslagruimte.

De juiste opdracht om de enscenering te vergelijken en de repository is om optie --staged achter toe te voegen 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