Avancerad Git
Amanda Crawford-Adamo
Software and Data Engineer
.git/logs/refs/heads/
| Egenskap | Git Reflog | Git Log |
|---|---|---|
| Syfte | Visar referensuppdateringar och omskrivningar i lokalt förråd | Visar endast commit-historik |
| Räckvidd | Endast lokalt förråd | Lokala och fjärrförråd |
| Innehåll | Alla ref-uppdateringar (commits, resets, merges, m.m.) | Endast commits |
| Beständighet | Tillfällig (vanligtvis 90 dagar) | Permanent (del av förrådshistoriken) |
| Användningsfall | Återställa förlorade commits, förstå senaste åtgärder | Visa projekthistorik, förstå funktionsutveckling |
git reflog
git reflog show
git reflog expire

| Komponent | Beskrivning |
|---|---|
| short-hash | Förkortad commit-hash |
| ref | Vanligtvis HEAD, men kan vara grennamn |
| index | Position i reflog (0 är den senaste) |
| action | Typ av åtgärd (commit, reset, merge, m.m.) |
| descriptions | Beskrivning av åtgärden |
since = visa poster från och med denna tidpunkt
git reflog --since "time-qualifer"
until = visa poster fram till denna tidpunkt
git reflog --until "time-qualifer"
git reflog --since="1 week ago"
git reflog --until="yesterday"
git reflog --until="2024-01-01"
etl-featureHur återställer vi grenen etl-feature?
git reflog
git checkout <hash>
git checkout -b <branch-name>
| Reset-typ | Kommando | Effekt på arbetskatalogen | Effekt på stagingarea |
|---|---|---|---|
| Soft | git reset --soft <commit> |
Inga ändringar | Ändringar förblir stagade |
| Mixed (standard) | git reset --mixed <commit> |
Inga ändringar | Ändringar tas bort från staging |
| Hard | git reset --hard <commit> |
Ändringar tas bort | Ändringar tas bort |
Hur återgår vi till de tidigare ETL-skriptändringarna?
git reflog
git reset --soft HEAD@{1}
Reflog är vår lokala tidsmaskin när vi gör misstag

Avancerad Git