faecher:informatik:oberstufe:git:diff:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:git:diff:start [24.09.2024 11:33] – [Vom HEAD zurück blicken] Frank Schiebelfaecher:informatik:oberstufe:git:diff:start [07.10.2024 18:55] (aktuell) – [Noch einfacher: Die Git-GUI] Frank Schiebel
Zeile 3: Zeile 3:
 ===== Änderungen zwischen Commits ansehen ===== ===== Änderungen zwischen Commits ansehen =====
  
-Wir arbeiten weiter in unserem Beispielrepository für das Tagebuch. Zunächst stellen wir sicher, dass wir auf den aktuellen  ''main''-Branch ausgecheckt haben:+Wir arbeiten weiter in unserem Beispielrepository für das Tagebuch. Zunächst stellen wir sicher, dass wir den aktuellen  ''main''-Branch ausgecheckt haben:
  
 <code bash> <code bash>
-frank@pike:~/tagebuch$ git checkout main+max@pc:tagebuch$ git checkout main
 Bereits auf 'main' Bereits auf 'main'
-frank@pike:~/tagebuch$ git lg  +max@pc:tagebuch$ git lg 
-022bdbc - (HEAD -> main) Mittagessen hinzugefügt (vor 20 Stunden)  +d7aaac4 - (HEAD -> main) Mittagessen hinzugefügt (vor 6 Tagen)  
-a5c28ad - fruehstueck.txt geändert (vor 20 Stunden)  +adc15c2 - fruehstueck.txt geändert (vor 6 Tagen)  
-2c70b75 Fruestück (vor 11 Monaten)  +f9353d6 Frühstück in Datei 'fruehstueck.txt' hinzugefügt (vor 6 Tagen)  
-9ee8f8b Aufstehen! (vor 11 Monaten+28ec5a7 Erster Commit: aufstehen.txt angelegt (vor 6 Tagen)
 </code> </code>
  
Zeile 20: Zeile 20:
  
 <code bash> <code bash>
-frank@pike:~/tagebuch$ git diff HEAD~1+max@pc:tagebuch$ git diff HEAD~1
 diff --git a/mittagessen.txt b/mittagessen.txt diff --git a/mittagessen.txt b/mittagessen.txt
 new file mode 100644 new file mode 100644
-index 0000000..4f90f20+index 0000000..2d3882c
 --- /dev/null --- /dev/null
 +++ b/mittagessen.txt +++ b/mittagessen.txt
-@@ -0,0 +1 @@ +@@ -0,0 +1,2 @@ 
-+Suppe!++Suppe
 ++Pommes rot weiß.
 </code> </code>
  
-Die Ausgabe sagt uns:  +Die Ausgabe sagt uns, dass in der Datei ''mittagessen.txt'' neu angelegt wurde und in diese zwei Zeilen eingefügt wurden: ''Suppe.'' und ''Pommes rot weiß.''
- +
-  * Es wurde eine neue Datei angelegt - ''mittagessen.txt'' +
-  * Dort wurde eine Zeile eingefügt: ''Suppe!''+
  
 Man kann sehr einfach auch zwei Commits in die Vergangenheit blicken: ''git diff HEAD~2'': Man kann sehr einfach auch zwei Commits in die Vergangenheit blicken: ''git diff HEAD~2'':
-<code git+<code bash
-frank@pike:~/tagebuch$ git diff HEAD~2+max@pc:tagebuch$ git diff HEAD~2
 diff --git a/fruehstueck.txt b/fruehstueck.txt diff --git a/fruehstueck.txt b/fruehstueck.txt
-index c8b8882..347ae7f 100644+index 56d9aeb..9be69b6 100644
 --- a/fruehstueck.txt --- a/fruehstueck.txt
 +++ b/fruehstueck.txt +++ b/fruehstueck.txt
-@@ -1,+1,@@ +@@ -1,+1,@@ 
- Muesli+ Müsli
  Kaffee  Kaffee
 + Brot
 +Schokolade +Schokolade
 diff --git a/mittagessen.txt b/mittagessen.txt diff --git a/mittagessen.txt b/mittagessen.txt
 new file mode 100644 new file mode 100644
-index 0000000..4f90f20+index 0000000..2d3882c
 --- /dev/null --- /dev/null
 +++ b/mittagessen.txt +++ b/mittagessen.txt
-@@ -0,0 +1 @@ +@@ -0,0 +1,2 @@ 
-+Suppe!++Suppe
 ++Pommes rot weiß.
 </code> </code>
 +
 +Die Ausgabe sagt uns, dass in **allen** Commits bis zum aktuellen HEAD die folgenden Änderungen im Repo stattgefunden haben:
 +
 +  * Es wurde eine neue Datei angelegt - ''mittagessen.txt''
 +  * Dort wurde die beiden Zeilen ''Suppe.'' und ''Pommes rot weiß.'' eingefügt.
 +  * In der zuvor bereits vorhandenen Datei ''fruehstueck.txt'' wurde nach den drei schon vorhandenen Zeilen eine weitere Zeile ''Schokolade'' eingefügt.
 +
 +----
 +{{:aufgabe.png?nolink  |}}
 +=== (A1) ===
 +
 +  * Untersuche die Unterschiede in deinem Repo zwischen dem HEAD auf main und einigen vorigen Commits
 +  * Erstelle auf dem main Branch einen weiteren Commit, bei dem du in einer deiner Dateien eine Zeile entfernst. Untersuche, wie die Ausgabe von ''git diff'' jetzt aussieht - woran erkennt man, dass die Zeile entfernt wurde?
 +  * Erstelle einen Commit, bei dem du eine Datei entfernst (''git rm <Dateiname>'', dann einen Commit erstellen). Untersuche, wie die Ausgabe von ''git diff'' jetzt aussieht
 +
 +==== Bessere Ausgabe ====
 +
 +Die Ausgabe von ''git diff'' erfolgt als "Diff", bei umfangreicheren Änderungen ist es nicht so einfach, das ohne weitere Hilfsmittel zu durchschauen. Git bietet die Möglichkeit, für die Anzeige der Unterschiede ein externes Progamm zu konfigurieren. Im weiteren wird das mit dem Programm ''meld'' demonstriert.
 +
 +<code>
 +git config diff.tool meld
 +git config diff.tool.prompt false
 +</code>
 +
 +Führt man nun den Befehl ''git difftool HEAD~1'' aus, öffnet sich das Programm ''meld'' und zeigt die Änderungen an - das sieht dann z.B. so aus:
 +
 +{{ :faecher:informatik:oberstufe:git:diff:meld_2.png |}}
 +Hier sieht man die beiden Versionen nebeneinander und bekommt direkt dargestellt was sich verändert hat.
 +
 +----
 +{{:aufgabe.png?nolink  |}}
 +=== (A2) ===
 +
 +  * Konfiguriere dein git-Repo für die Verwendung eines grafischen Diff-Tools
 +  * Schau dich in deinem Repo um und schaue dir die Änderungen in deinem Repo mit dem grafischen Tool an.
 +
 +==== Noch einfacher: Die Git-GUI ====
 +
 +Noch komfortabler funktioniert die Git-GUI. Unter Window kann man diese über die rechte Maustaste öffnen, unter Linux kannst du auf der Konsole einfach den Befehl ''gitg'' eingeben, dann sieht das ganze so aus - probiers aus!
 +
 +{{ :faecher:informatik:oberstufe:git:diff:2024-10-07_20-54.png |}}
 +
 +
 +
 +
 +
  • faecher/informatik/oberstufe/git/diff/start.1727177593.txt.gz
  • Zuletzt geändert: 24.09.2024 11:33
  • von Frank Schiebel