Hoppa till innehåll

Historiken och skillnaderna: git log och git diff

  • Att visa historiken med git log och git log --oneline.
  • Att se vad som ändrats med git diff.
  • Skillnaden mellan git diff och git diff --staged.

I modul 1 var det svårt att svara på frågor som vad ändrade jag i förrgår? eller vilken av filerna är den senaste?. Git kan svara på dem direkt, eftersom varje version är sparad med meddelande, författare och tidpunkt.

Tre commits i en kedja. Den äldsta, 226c08c, ligger till vänster och den nyaste, a41f3d2, till höger. Varje commit pekar bakåt på den den bygger på, och grenen main pekar på den nyaste.

Historiken är en kedja av commits. Varje commit pekar bakåt på commiten den bygger på. main är namnet på grenen du arbetar på, och den pekar alltid på den senaste commiten. Grenar kommer i modul 4.

  • git log går bakåt i kedjan och visar commit för commit, med den nyaste först.
  • git diff jämför två lägen och visar raderna som skiljer dem åt.
Terminal
$ git log
commit 7620faca7ef53ba05c9856f3786908e8330c50f5
Author: Kim Andersson <kim@example.com>
Date: Tue Nov 3 10:42:00 2026 +0100
Lägg till dag 3: Gävle
commit 226c08c117ec6991065ec8c6580754c1af7097bd
Author: Kim Andersson <kim@example.com>
Date: Tue Nov 3 10:15:00 2026 +0100
Första versionen av resplanen

Den kortare varianten visar en rad per commit:

Terminal
$ git log --oneline
7620fac Lägg till dag 3: Gävle
226c08c Första versionen av resplanen

Ändra en fil, men kör inte git add än. Då visar git diff vad som skiljer arbetskatalogen från den senast sparade versionen:

Terminal
$ git diff
diff --git a/resplan.txt b/resplan.txt
index f2132e9..d9d77fc 100644
--- a/resplan.txt
+++ b/resplan.txt
@@ -2,3 +2,4 @@ Resplan sommaren
Dag 1: Stockholm
Dag 2: Uppsala
+Dag 3: Gävle

Rader som börjar med + har lagts till och rader som börjar med - har tagits bort. Rader utan tecken är oförändrade och visas bara som sammanhang.

1. I vilken ordning visar git log dina commits?
Visa rätt svar
  • Den nyaste först
2. Du har ändrat en fil och kört git add. Vilket kommando visar ändringen?
Visa rätt svar
  • git diff --staged: Det visar det som ligger i staging area och kommer med i nästa commit.
3. I git diff börjar en rad med ett minustecken (-). Vad betyder det?
Visa rätt svar
  • Raden har tagits bort

  • git log visar historiken med den nyaste commiten först. git log --oneline visar en rad per commit.
  • git diff visar ändringar som inte ligger i staging area än. git diff --staged visar det som kommer med i nästa commit.
  • + betyder tillagd rad och - betyder borttagen rad.