Fortgeschrittenes Git
Amanda Crawford-Adamo
Software and Data Engineer
.git/logs/refs/heads/
| Feature | Git Reflog | Git Log |
|---|---|---|
| Zweck | Zeigt Referenz-Updates und -Umschreibungen im lokalen Repo | Zeigt nur die Commit-Historie |
| Umfang | Nur lokales Repository | Lokale und Remote-Repositories |
| Inhalt | Alle Ref-Updates (Commits, Resets, Merges etc.) | Nur Commits |
| Persistenz | Temporär (meist 90 Tage) | Dauerhaft (Teil der Repo-Historie) |
| Use Case | Verlorene Commits retten, jüngste Aktionen verstehen | Projektverlauf ansehen, Feature-Entwicklung verstehen |
git reflog
git reflog show
git reflog expire

| Komponente | Beschreibung |
|---|---|
| short-hash | Abgekürzter Commit-Hash |
| ref | Meist HEAD, kann aber auch Branch-Namen sein |
| index | Position im Reflog (0 ist der neueste) |
| action | Aktionstyp (commit, reset, merge etc.) |
| descriptions | Beschreibung der Aktion |
since = Einträge ab diesem Zeitpunkt anzeigen
git reflog --since "time-qualifer"
until = Einträge bis zu diesem Zeitpunkt anzeigen
git reflog --until "time-qualifer"
git reflog --since="1 week ago"
git reflog --until="yesterday"
git reflog --until="2024-01-01"
etl-feature erstelltWie stellen wir den Branch etl-feature wieder her?
git reflog
git checkout <hash>
git checkout -b <branch-name>
| Reset-Typ | Befehl | Effekt auf das Arbeitsverzeichnis | Effekt auf den Staging-Bereich |
|---|---|---|---|
| Soft | git reset --soft <commit> |
Keine Änderungen | Änderungen bleiben gestaged |
| Mixed (Standard) | git reset --mixed <commit> |
Keine Änderungen | Änderungen werden entstaged |
| Hard | git reset --hard <commit> |
Änderungen werden verworfen | Änderungen werden verworfen |
Wie kommen wir zu den vorherigen ETL-Skript-Änderungen zurück?
git reflog
git reset --soft HEAD@{1}
Reflog ist unsere lokale Zeitmaschine, wenn wir Fehler machen

Fortgeschrittenes Git