Rebasing
Rebasing umożliwia włączenie zmian z jednej gałęzi do innej gałęzi poprzez modyfikację historii zatwierdzeń. Odtwarza zatwierdzenia z gałęzi źródłowej do gałęzi docelowej. Powoduje to czystszą i bardziej liniową historię zatwierdzeń.
Przykład: powiedzmy, że masz wywołaną gałąź funkcji feature-branch
i chcesz uwzględnić najnowsze zmiany z tej main
gałęzi. Możesz użyć następującego polecenia:
Spowoduje to zastosowanie zatwierdzeń z main
gałęzi do pliku feature-branch
. Wszelkie konflikty będą musiały zostać rozwiązane podczas procesu rebase.
Stashing
Ukrywanie umożliwia zapisanie bieżących zmian, które nie są gotowe do zatwierdzenia, i tymczasowe przywrócenie czystego katalogu roboczego. Jest to przydatne, gdy musisz przełączyć się do innej gałęzi lub pracować nad inną funkcją bez zatwierdzania zmian, nad którymi aktualnie pracujesz.
Przykład: Powiedzmy, że pracujesz nad gałęzią funkcji i wprowadziłeś pewne zmiany, ale musisz przełączyć się do innej gałęzi. Możesz użyć następujących poleceń, aby ukryć zmiany:
po przejściu do nowej gałęzi możesz następnie zastosować ukryte zmiany, używając:
Git Hooks
Git Hooks
to skrypty uruchamiane przez określone zdarzenia Git, takie jak przed zatwierdzeniem, po zatwierdzeniu, przed przekazaniem itp. Pozwalają zautomatyzować określone działania lub wymusić określone reguły w przepływie pracy.
Przykład: Załóżmy, że chcesz uruchomić linter na swoim kodzie przed zatwierdzeniem. Możesz utworzyć skrypt przechwytujący przed zatwierdzeniem, który uruchamia linter i zapobiega zatwierdzeniu, jeśli wystąpią jakiekolwiek błędy lintingu.
Git Submodule
Git Submodule
pozwalają dołączyć inne repozytorium Git jako podkatalog w głównym repozytorium. Jest to przydatne, gdy masz projekt, który zależy od zewnętrznych bibliotek lub komponentów.
Przykład: masz projekt, który wymaga określonej biblioteki. Zamiast duplikować kod biblioteki w swoim repozytorium, możesz dodać go jako submoduł. W ten sposób możesz zachować oddzielny kod biblioteki i łatwo go aktualizować w razie potrzeby.
Git Revert and Git Reset
Git Revert
cofa poprzednie zatwierdzenie, tworząc nowe zatwierdzenie, które cofa zmiany dokonane w pierwotnym zatwierdzeniu. Git Reset
, z drugiej strony, pozwala przenieść wskaźnik gałęzi do innego zatwierdzenia, skutecznie odrzucając zatwierdzenia z historii zatwierdzeń.
Przykład: Jeśli chcesz cofnąć ostatnie zatwierdzenie, możesz użyć git revert HEAD
do utworzenia nowego zatwierdzenia, które cofa zmiany dokonane w ostatnim zatwierdzeniu. Jeśli chcesz całkowicie odrzucić ostatnie zatwierdzenie, możesz użyć, git reset HEAD~1
aby przesunąć wskaźnik gałęzi wstecz o jedno zatwierdzenie.
Te zaawansowane koncepcje w Git zapewniają potężne możliwości efektywnego zarządzania repozytorium. Zrozumienie, jak ich używać i kiedy je stosować, znacznie usprawni przepływ pracy Git i zarządzanie projektami.