Advanced Git
Amanda Crawford-Adamo
Software and Data Engineer
.git/logs/refs/heads/
| Vlastnost | Git Reflog | Git Log |
|---|---|---|
| Účel | Zobrazuje aktualizace referencí a přepisy v lokálním repozitáři | Zobrazuje pouze historii commitů |
| Rozsah | Pouze lokální repozitář | Lokální i vzdálené repozitáře |
| Obsah | Všechny aktualizace referencí (commity, resety, merges atd.) | Pouze commity |
| Trvalost | Dočasný (obvykle 90 dní) | Trvalý (součást historie repozitáře) |
| Použití | Obnova ztracených commitů, přehled nedávných akcí | Zobrazení historie projektu, vývoj funkcí |
git reflog
git reflog show
git reflog expire

| Komponenta | Popis |
|---|---|
| short-hash | Zkrácený hash commitu |
| ref | Obvykle HEAD, ale může být i název větve |
| index | Pozice v reflogu (0 je nejnovější) |
| action | Typ akce (commit, reset, merge atd.) |
| descriptions | Popis akce |
since = zobrazit záznamy od tohoto bodu v čase
git reflog --since "time-qualifer"
until = zobrazit záznamy do tohoto bodu v čase
git reflog --until "time-qualifer"
git reflog --since="1 week ago"
git reflog --until="yesterday"
git reflog --until="2024-01-01"
etl-featureJak obnovit větev etl-feature?
git reflog
git checkout <hash>
git checkout -b <branch-name>
| Typ resetu | Příkaz | Efekt na pracovní adresář | Efekt na staging area |
|---|---|---|---|
| Soft | git reset --soft <commit> |
Žádné změny | Změny zůstávají ve staging |
| Mixed (výchozí) | git reset --mixed <commit> |
Žádné změny | Změny jsou odstraněny ze staging |
| Hard | git reset --hard <commit> |
Změny jsou zahozeny | Změny jsou zahozeny |
Jak se vrátit k předchozím změnám ETL skriptu?
git reflog
git reset --soft HEAD@{1}
Reflog je náš lokální stroj času při chybách

Advanced Git