@@ -15,136 +15,135 @@ Rückblick
1515Filtern und sortieren
1616~~~~~~~~~~~~~~~~~~~~~
1717
18- .. glossary ::
18+ :samp: `$ git log [-n { COUNT } ] `
19+ listet die Commit-Historie des aktuellen Zweiges auf.
1920
20- :samp: ` $ git log [-n { COUNT } ] `
21- listet die Commit-Historie des aktuellen Zweiges auf.
21+ `` -n ` `
22+ beschränkt die Anzahl der Commits auf die angegebene Zahl .
2223
23- `` -n ` `
24- beschränkt die Anzahl der Commits auf die angegebene Zahl .
24+ :samp: ` $ git log [--after=" { YYYY-MM-DD } "] [--before=" { YYYY-MM-DD } "] `
25+ Commit-Historie gefiltert nach Datum .
2526
26- :samp: ` $ git log [--after=" { YYYY-MM-DD } "] [--before=" { YYYY-MM-DD } "] `
27- Commit-Historie gefiltert nach Datum .
27+ Auch relative Angaben wie `` 1 week ago `` oder `` yesterday `` sind
28+ zulässig .
2829
29- Auch relative Angaben wie `` 1 week ago `` oder `` yesterday `` sind
30- zulässig .
30+ :samp: ` $ git log --author=" { VEIT } " `
31+ filtert die Commit-Historie nach Autor*innen .
3132
32- :samp: ` $ git log --author=" { VEIT } " `
33- filtert die Commit-Historie nach Autor*innen.
33+ Es kann auch nach mehreren Autor*innen gleichzeitig gesucht werden,
34+ :abbr: ` z.B. ( zum Beispiel ) `:
3435
35- Es kann auch nach mehreren Autor*innen gleichzeitig gesucht werden,
36- :abbr: `z.B. ( zum Beispiel ) `:
36+ :samp: `$ git log --author="{ VEIT\| VSC } " `
3737
38- :samp: `$ git log --author="{ VEIT\| VSC } " `
38+ :samp: `$ git log --grep="{ TERM } " [-i] `
39+ filtert die Commit-Historie nach regulären Ausdrücken in der
40+ Commit-Nachricht.
3941
40- :samp: `$ git log --grep="{ TERM } " [-i] `
41- filtert die Commit-Historie nach regulären Ausdrücken in der
42- Commit-Nachricht.
42+ ``-i ``
43+ ignoriert Groß- und Kleinschreibung.
4344
44- `` -i ` `
45- ignoriert Groß- und Kleinschreibung .
45+ :samp: ` $ git log -S" { FOO } " [-i] `
46+ filtert Commits nach bestimmten Zeilen im Quellcode .
4647
47- :samp: ` $ git log -S" { FOO } " [-i] `
48- filtert Commits nach bestimmten Zeilen im Quellcode .
48+ `` -i ` `
49+ ignoriert Groß- und Kleinschreibung .
4950
50- `` -i ` `
51- ignoriert Groß- und Kleinschreibung .
51+ :samp: ` $ git log -G" { BA* } " `
52+ filtert Commits nach regulären Ausdrücken im Quellcode .
5253
53- :samp: `$ git log -G" { BA* } " `
54- filtert Commits nach regulären Ausdrücken im Quellcode .
54+ :samp: `$ git log -- { PATH/TO/FILE } `
55+ filtert die Commit-Historie nach bestimmten Dateien .
5556
56- :samp: `$ git log -- { PATH/TO/FILE } `
57- filtert die Commit-Historie nach bestimmten Dateien.
57+ :samp: `$ git log { MAIN } ..{ FEATURE } `
58+ filtert nach unterschiedlichen Commits in verschiedenen Zweigen
59+ (Branches), in unserem Fall zwischen den Branches :samp: `MAIN ` und
60+ :samp: `FEATURE `.
61+
62+ Dies ist jedoch nicht dasselbe wie :samp: `git log { FEATURE } ..{ MAIN } `.
63+ Nehmen wir folgendes Beispiel.
64+
65+ .. code-block ::
66+
67+ A - B main
68+ \
69+ C - D feature
5870
5971 :samp: `$ git log { MAIN } ..{ FEATURE } `
60- filtert nach unterschiedlichen Commits in verschiedenen Zweigen
61- (Branches), in unserem Fall zwischen den Branches :samp: `MAIN ` und
62- :samp: `FEATURE `.
63-
64- Dies ist jedoch nicht dasselbe wie :samp: `git log { FEATURE } ..{ MAIN } `.
65- Nehmen wir folgendes Beispiel.
66-
67- .. code-block ::
68-
69- A - B main
70- \
71- C - D feature
72-
73- :samp: `$ git log { MAIN } ..{ FEATURE } `
74- zeigt Änderungen in :samp: `{ FEATURE } ` an, die nicht in :samp: `{ MAIN } `
75- enthalten sind, also die Commits ``C `` und ``D ``.
76- :samp: `$ git log { FEATURE } ..{ MAIN } `
77- zeigt Änderungen in :samp: `{ MAIN } ` an, die nicht in :samp: `{ FEATURE } `
78- enthalten sind, also den Commit ``B ``.
79- :samp: `$ git log { MAIN } ...{ FEATURE } `
80- zeigt die Änderungen auf beiden Seiten an, also die Commits ``B ``,
81- ``C `` und ``D ``.
82-
83- :samp: `$ git log --follow { PATH/TO/FILE } `
84- Dies sorgt dafür, dass das Log Änderungen an einer einzelnen Datei
85- anzeigt, auch wenn diese umbenannt oder verschoben wurde.
86-
87- Ihr könnt ``--follow `` für einzelne Dateiaufrufe standardmäßig
88- aktivieren, indem ihr die Option ``log.follow `` in eurer globalen
89- Konfiguration aktiviert:
90-
91- .. code-block :: console
92-
93- $ git config --global log.follow true
94-
95- Dann müsst ihr nicht mehr ``--follow `` angeben, sondern nur noch den
96- Dateinamen.
97-
98- :samp: `$ git log -L { LINE_START_INT|LINE_START_REGEX } ,{ LINE_END_INT|LINE_END_REGEX } :{ PATH/TO/FILE } `
99- :samp: `$ git log -L :{ FUNCNAME_REGEX } :{ PATH/TO/FILE } `
100- Mit der Option `-L
101- <https://git-scm.com/docs/git-log#Documentation/git-log.txt--Lltstartgtltendgtltfilegt> `_
102- könnt ihr eine verfeinerte Suche durchführen, indem ihr das Log nur eines
103- Teils einer Datei überprüft. Mit dieser Funktion könnt ihr die Historie
104- einer einzelnen Funktion, einer Klasse oder eines anderen Code-Blocks
105- gründlich durchforsten. Sie ist ideal, um herauszufinden, wann etwas
106- erstellt und wie es geändert wurde, so dass ihr es getrost korrigieren,
107- refaktorisieren oder löschen könnt.
108-
109- Für umfassendere Untersuchungen könnt ihr auch mehrere Blöcke verfolgen.
110- Hierfür könnt ihr mehrere ``-L ``-Optionen auf einmal verwenden.
111-
112- :samp: `$ git log --reverse `
113- Üblicherweise zeigt das Protokoll den neuesten Commit zuerst an. Ihr
114- könnt dies mit ``--reverse `` umkehren. Dies ist besonders nützlich, wenn
115- ihr mit den bereits erwähnten Optionen ``-S `` und ``-G `` untersucht.
116- Indem ihr die Reihenfolge der Commits umkehrt, könnt ihr schnell den
117- ersten Commit finden, der eine bestimmte Zeichenfolge zur Codebasis
118- hinzugefügt hat.
72+ zeigt Änderungen in :samp: `{ FEATURE } ` an, die nicht in :samp: `{ MAIN } `
73+ enthalten sind, also die Commits ``C `` und ``D ``.
74+ :samp: `$ git log { FEATURE } ..{ MAIN } `
75+ zeigt Änderungen in :samp: `{ MAIN } ` an, die nicht in :samp: `{ FEATURE } `
76+ enthalten sind, also den Commit ``B ``.
77+ :samp: `$ git log { MAIN } ...{ FEATURE } `
78+ zeigt die Änderungen auf beiden Seiten an, also die Commits ``B ``,
79+ ``C `` und ``D ``.
80+
81+ :samp: `$ git log --follow { PATH/TO/FILE } `
82+ Dies sorgt dafür, dass das Log Änderungen an einer einzelnen Datei
83+ anzeigt, auch wenn diese umbenannt oder verschoben wurde.
84+
85+ Ihr könnt ``--follow `` für einzelne Dateiaufrufe standardmäßig
86+ aktivieren, indem ihr die Option ``log.follow `` in eurer globalen
87+ Konfiguration aktiviert:
88+
89+ .. code-block :: console
90+
91+ $ git config --global log.follow true
92+
93+ Dann müsst ihr nicht mehr ``--follow `` angeben, sondern nur noch den
94+ Dateinamen.
95+
96+ ``$ git log -L ``
97+ Mit der Option `-L
98+ <https://git-scm.com/docs/git-log#Documentation/git-log.txt--Lltstartgtltendgtltfilegt> `_
99+ könnt ihr eine verfeinerte Suche durchführen, indem ihr das Log nur eines
100+ Teils einer Datei überprüft:
101+
102+ * :samp: `$ git log -L { LINE_START_INT|LINE_START_REGEX } ,{ LINE_END_INT|LINE_END_REGEX } :{ PATH/TO/FILE } `
103+ * :samp: `$ git log -L :{ FUNCNAME_REGEX } :{ PATH/TO/FILE } `
104+
105+ Mit dieser Funktion könnt ihr die Historie einer einzelnen Funktion, einer
106+ Klasse oder eines anderen Code-Blocks gründlich durchforsten. Sie ist ideal,
107+ um herauszufinden, wann etwas erstellt und wie es geändert wurde, so dass ihr
108+ es getrost korrigieren, refaktorisieren oder löschen könnt.
109+
110+ Für umfassendere Untersuchungen könnt ihr auch mehrere Blöcke verfolgen.
111+ Hierfür könnt ihr mehrere ``-L ``-Optionen auf einmal verwenden.
112+
113+ :samp: `$ git log --reverse `
114+ Üblicherweise zeigt das Protokoll den neuesten Commit zuerst an. Ihr
115+ könnt dies mit ``--reverse `` umkehren. Dies ist besonders nützlich, wenn
116+ ihr mit den bereits erwähnten Optionen ``-S `` und ``-G `` untersucht.
117+ Indem ihr die Reihenfolge der Commits umkehrt, könnt ihr schnell den
118+ ersten Commit finden, der eine bestimmte Zeichenfolge zur Codebasis
119+ hinzugefügt hat.
119120
120121Ansicht
121122~~~~~~~
122123
123- .. glossary ::
124-
125- :samp: `$ git log --stat --patch|-p `
126- ``--stat ``
127- Den üblichen Metadaten wird noch eine eine Zusammenfassung der Anzahl
128- der geänderten Zeilen pro Datei hinzugefügt.
129- ``--patch|-p ``
130- ergänzt die Ausgabe um den vollständigen Commit-Diff.
131-
132- :samp: `$ git log --oneline --decorate --graph --all|{ FEATURE } `
133- anzeigen des Verlaufsdiagramms mit Referenzen, ein Commit pro Zeile.
134-
135- ``--oneline ``
136- Ein Commit pro Zeile.
137- ``--decorate ``
138- Die Präfixe ``refs/heads/ ``, ``refs/tags/ `` und ``refs/remotes/ ``
139- werden nicht ausgegeben.
140- ``--graph ``
141- Üblicherweise *glättet * das Log historische Zweige und zeigt Commits
142- nacheinander an. Damit wird die parallele Struktur der Historie beim
143- Zusammenführen von Zweigen verborgen. ``--graph `` stellt den Verlauf
144- der Zweige in ASCII-Art dar.
145- :samp: `--all|{ FEATURE } `
146- ``--all `` zeigt das Log für alle Zweige; :samp: `{ FEATURE } ` zeigt nur
147- die Commits dieses Zweiges an.
124+ :samp: `$ git log --stat --patch|-p `
125+ ``--stat ``
126+ Den üblichen Metadaten wird noch eine eine Zusammenfassung der Anzahl
127+ der geänderten Zeilen pro Datei hinzugefügt.
128+ ``--patch|-p ``
129+ ergänzt die Ausgabe um den vollständigen Commit-Diff.
130+
131+ :samp: `$ git log --oneline --decorate --graph --all|{ FEATURE } `
132+ anzeigen des Verlaufsdiagramms mit Referenzen, ein Commit pro Zeile.
133+
134+ ``--oneline ``
135+ Ein Commit pro Zeile.
136+ ``--decorate ``
137+ Die Präfixe ``refs/heads/ ``, ``refs/tags/ `` und ``refs/remotes/ ``
138+ werden nicht ausgegeben.
139+ ``--graph ``
140+ Üblicherweise *glättet * das Log historische Zweige und zeigt Commits
141+ nacheinander an. Damit wird die parallele Struktur der Historie beim
142+ Zusammenführen von Zweigen verborgen. ``--graph `` stellt den Verlauf
143+ der Zweige in ASCII-Art dar.
144+ :samp: `--all|{ FEATURE } `
145+ ``--all `` zeigt das Log für alle Zweige; :samp: `{ FEATURE } ` zeigt nur
146+ die Commits dieses Zweiges an.
148147
149148.. _reflog :
150149
@@ -164,50 +163,49 @@ Schauen wir uns die Grundlagen der Verwendung von Reflog und einige typische
164163Anwendungsfälle an.
165164
166165.. warning ::
167- Das Reflog ist nur Teil eures lokalen Repository. Wenn ihr ein Projektarchiv
168- löscht und neu klont, wird der neue Klon ein frisches, leeres Reflog haben.
166+ Das Reflog ist nur Teil eures lokalen Repository. Wenn ihr ein Projektarchiv
167+ löscht und neu klont, wird der neue Klon ein frisches, leeres Reflog haben.
169168
170169Das Reflog für ``HEAD `` anzeigen
171170~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
172171
173- .. glossary ::
174-
175- :samp: `$ git reflog `
176- Wenn keine Optionen angegeben sind, zeigt der Befehl standardmäßig das
177- Reflog für ``HEAD `` an. Es ist die Abkürzung für ``git reflog show
178- HEAD ``. git reflog hat weitere Unterbefehle zur Verwaltung des Logs, aber
179- ``show `` ist der Standardbefehl, wenn kein Unterbefehl übergeben wird.
180-
181- .. code-block :: console
182- :linenos:
183-
184- $ git reflog
185- 12bc4d4 (HEAD -> main, my-feature-branch) HEAD@{0}: merge my-feature-branch: Fast-forward
186- 900844a HEAD@{1}: checkout: moving from my-feature-branch to main
187- 12bc4d4 (HEAD -> main, my-feature-branch) HEAD@{2}: commit (amend): Add my feature and more
188- 982d93a HEAD@{3}: commit: Add my feature
189- 900844a HEAD@{4}: checkout: moving from main to my-feature-branch
190- 900844a HEAD@{5}: commit (initial): Initial commit
191-
192- * Die Ausgabe ist ziemlich dicht.
193- * Jede Zeile ist ein Reflog-Eintrag, der neueste zuerst.
194- * Die Zeilen beginnen mit dem abgekürzten SHA des entsprechenden Commits,
195- :abbr: `z.B. ( zum Beispiel ) ` ``12bc4d4 ``.
196- * Der erste Eintrag ist das, worauf ``HEAD `` derzeit verweist: ``(HEAD -> main,
197- my-feature) ``.
198- * Die Namen ``HEAD@\{N} `` sind alternative Referenzen für die angegebenen
199- Commits. ``N `` ist die Anzahl der zurückgehenden reflog-Einträge.
200- * Der restliche Text beschreibt die Änderung. Oben könnt ihr mehrere Arten von
201- Einträgen sehen:
202-
203- * :samp: `commit: { MESSAGE } ` für Commits
204- * :samp: `commit (amend): { MESSAGE } ` für eine Commit-Änderung
205- * :samp: `checkout: moving from { SRC } TO { DST } ` für einen Zweigwechsel
206-
207- Es gibt viele weitere mögliche Arten von Einträgen. Der Text sollte so
208- beschreibend sein, dass ihr den Vorgang auch ohne Nachschlagen in der
209- Dokumentation nachvollziehen könnt. In den meisten Fällen werdet ihr solche
210- Reflog-Einträge durchsehen wollen, um den entsprechenden Commit SHA zu finden.
172+ :samp: `$ git reflog `
173+ Wenn keine Optionen angegeben sind, zeigt der Befehl standardmäßig das
174+ Reflog für ``HEAD `` an. Es ist die Abkürzung für ``git reflog show
175+ HEAD ``. git reflog hat weitere Unterbefehle zur Verwaltung des Logs, aber
176+ ``show `` ist der Standardbefehl, wenn kein Unterbefehl übergeben wird.
177+
178+ .. code-block :: console
179+ :linenos:
180+
181+ $ git reflog
182+ 12bc4d4 (HEAD -> main, my-feature-branch) HEAD@{0}: merge my-feature-branch: Fast-forward
183+ 900844a HEAD@{1}: checkout: moving from my-feature-branch to main
184+ 12bc4d4 (HEAD -> main, my-feature-branch) HEAD@{2}: commit (amend): Add my feature and more
185+ 982d93a HEAD@{3}: commit: Add my feature
186+ 900844a HEAD@{4}: checkout: moving from main to my-feature-branch
187+ 900844a HEAD@{5}: commit (initial): Initial commit
188+
189+ * Die Ausgabe ist ziemlich dicht.
190+ * Jede Zeile ist ein Reflog-Eintrag, der neueste zuerst.
191+ * Die Zeilen beginnen mit dem abgekürzten SHA des entsprechenden Commits,
192+ :abbr: `z.B. ( zum Beispiel ) ` ``12bc4d4 ``.
193+ * Der erste Eintrag ist das, worauf ``HEAD `` derzeit verweist: ``(HEAD ->
194+ main, my-feature) ``.
195+ * Die Namen ``HEAD@\{N} `` sind alternative Referenzen für die angegebenen
196+ Commits. ``N `` ist die Anzahl der zurückgehenden reflog-Einträge.
197+ * Der restliche Text beschreibt die Änderung. Oben könnt ihr mehrere Arten
198+ von Einträgen sehen:
199+
200+ * :samp: `commit: { MESSAGE } ` für Commits
201+ * :samp: `commit (amend): { MESSAGE } ` für eine Commit-Änderung
202+ * :samp: `checkout: moving from { SRC } TO { DST } ` für einen Zweigwechsel
203+
204+ Es gibt viele weitere mögliche Arten von Einträgen. Der Text sollte so
205+ beschreibend sein, dass ihr den Vorgang auch ohne Nachschlagen in der
206+ Dokumentation nachvollziehen könnt. In den meisten Fällen werdet ihr solche
207+ Reflog-Einträge durchsehen wollen, um den entsprechenden Commit SHA zu
208+ finden.
211209
212210Das Reflog für einen Zweig anzeigen
213211~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -243,13 +241,13 @@ Und für absolute Zeitstempel könnt ihr auch ``--date=iso`` verwenden:
243241
244242.. code-block :: console
245243
246- $ git reflog --date=iso
247- 12bc4d4 (HEAD -> main, my-feature) HEAD@{2024-01-11 15:26:53 +0100}: merge my-feature-branch: Fast-forward
248- 900844a HEAD@{2024-01-11 15:26:47 +0100}: checkout: moving from my-feature-branch to main
249- 12bc4d4 (HEAD -> main, my-feature-branch) HEAD@{2024-01-11 15:26:11 +0100}: commit (amend): Add my feature and more
250- 982d93a HEAD@{2024-01-11 15:25:38 +0100}: commit: Add my feature
251- 900844a HEAD@{2024-01-11 15:24:37 +0100}: checkout: moving from main to my-feature-branch
252- 900844a HEAD@{2024-01-11 15:23:56 +0100}: commit (initial): Initial commit
244+ $ git reflog --date=iso
245+ 12bc4d4 (HEAD -> main, my-feature) HEAD@{2024-01-11 15:26:53 +0100}: merge my-feature-branch: Fast-forward
246+ 900844a HEAD@{2024-01-11 15:26:47 +0100}: checkout: moving from my-feature-branch to main
247+ 12bc4d4 (HEAD -> main, my-feature-branch) HEAD@{2024-01-11 15:26:11 +0100}: commit (amend): Add my feature and more
248+ 982d93a HEAD@{2024-01-11 15:25:38 +0100}: commit: Add my feature
249+ 900844a HEAD@{2024-01-11 15:24:37 +0100}: checkout: moving from main to my-feature-branch
250+ 900844a HEAD@{2024-01-11 15:23:56 +0100}: commit (initial): Initial commit
253251
254252 Übergebt alle Optionen, die ``git log `` unterstützt
255253~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -260,10 +258,10 @@ feature}` erwähnt wird, ohne die Groß- und Kleinschreibung zu berücksichtigen
260258
261259.. code-block :: console
262260
263- $ git reflog -i --grep 'my feature'
264- 12bc4d4 (HEAD -> main, my-feature-branch) HEAD@{0}: merge my-feature: Fast-forward
265- 12bc4d4 (HEAD -> main, my-feature-branch) HEAD@{2}: commit (amend): Add my feature and more
266- 982d93a HEAD@{3}: commit: Add my feature
261+ $ git reflog -i --grep 'my feature'
262+ 12bc4d4 (HEAD -> main, my-feature-branch) HEAD@{0}: merge my-feature: Fast-forward
263+ 12bc4d4 (HEAD -> main, my-feature-branch) HEAD@{2}: commit (amend): Add my feature and more
264+ 982d93a HEAD@{3}: commit: Add my feature
267265
268266 Beachtet den Verfall von Einträgen
269267~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -273,10 +271,10 @@ Reflog-Einträge verfallen nach einer gewissen Zeit, wenn Git den automatischen
273271Diese Verfallszeit wird durch zwei ``gc.* ``-Optionen gesteuert:
274272
275273``gc.reflogExpire ``
276- Die allgemeine Verfallszeit, die standardmäßig auf 90 Tage eingestellt ist.
274+ Die allgemeine Verfallszeit, die standardmäßig auf 90 Tage eingestellt ist.
277275``gc.reflogExpireUnreachable ``
278- Die Verfallszeit für Einträge, die sich auf nicht mehr erreichbare Commits
279- beziehen, ist standardmäßig auf 30 Tage eingestellt.
276+ Die Verfallszeit für Einträge, die sich auf nicht mehr erreichbare Commits
277+ beziehen, ist standardmäßig auf 30 Tage eingestellt.
280278
281279Ihr könnt diese Optionen auf einen längeren Zeitrahmen erhöhen, was allerdings
282280nur selten sinnvoll sein dürfte.
0 commit comments