Zaawansowany Git
Amanda Crawford-Adamo
Software and Data Engineer
.git/logs/refs/heads/
| Cecha | Git Reflog | Git Log |
|---|---|---|
| Cel | Pokazuje aktualizacje i przepisania referencji w lokalnym repozytorium | Pokazuje tylko historię commitów |
| Zakres | Tylko lokalne repozytorium | Lokalne i zdalne repozytoria |
| Zawartość | Wszystkie aktualizacje ref (commity, resety, scalenia itp.) | Tylko commity |
| Trwałość | Tymczasowa (zwykle 90 dni) | Trwała (część historii repozytorium) |
| Zastosowanie | Odzyskiwanie utraconych commitów, analiza ostatnich działań | Przeglądanie historii projektu, analiza rozwoju funkcji |
git reflog
git reflog show
git reflog expire

| Składnik | Opis |
|---|---|
| short-hash | Skrócony hash commita |
| ref | Zazwyczaj HEAD, może być też nazwa gałęzi |
| index | Pozycja w reflogu (0 = najnowsza) |
| action | Typ akcji (commit, reset, merge itp.) |
| descriptions | Opis akcji |
since = pokaż wpisy od tego momentu
git reflog --since "time-qualifer"
until = pokaż wpisy do tego momentu
git reflog --until "time-qualifer"
git reflog --since="1 week ago"
git reflog --until="yesterday"
git reflog --until="2024-01-01"
etl-featureJak przywrócić gałąź etl-feature?
git reflog
git checkout <hash>
git checkout -b <branch-name>
| Typ resetu | Polecenie | Wpływ na katalog roboczy | Wpływ na poczekalnię |
|---|---|---|---|
| Soft | git reset --soft <commit> |
Bez zmian | Zmiany pozostają w poczekalni |
| Mixed (domyślny) | git reset --mixed <commit> |
Bez zmian | Zmiany usunięte z poczekalni |
| Hard | git reset --hard <commit> |
Zmiany są odrzucane | Zmiany są odrzucane |
Jak przywrócić poprzednie zmiany skryptu ETL?
git reflog
git reset --soft HEAD@{1}
Reflog to lokalna maszyna czasu na wypadek pomyłek

Zaawansowany Git