Ponowna baza
Rebase
to proces zmiany historii zatwierdzeń gałęzi poprzez zastosowanie zatwierdzeń z innej gałęzi. Zamiast używać merge
do łączenia zmian, rebase
umożliwia wprowadzanie insert
nowych zatwierdzeń do historii zatwierdzeń bieżącej gałęzi bez tworzenia zatwierdzeń łączenia.
Załóżmy na przykład, że masz dwie gałęzie: feature-branch
i main
. Pracujesz nad feature-branch
i chcesz zastosować najnowsze zatwierdzenia z main
bieżącej gałęzi. Możesz użyć rebase, aby to osiągnąć:
git checkout feature-branch
git rebase main
Gdy uruchomisz to polecenie, Git pobierze zatwierdzenia z main
i zastosuje je w plikach feature-branch
. Oznacza to, że wszystkie zatwierdzenia w dniu feature-branch
pojawią się po zatwierdzeniach z main
. Rezultatem jest czystsza i bardziej czytelna historia zatwierdzeń w feature-branch
.
Jednak w przypadku korzystania z rebase należy pamiętać, że zmiana historii zatwierdzania może mieć wpływ na publicznie udostępnione gałęzie. Dlatego, jeśli już wypchnąłeś zatwierdzenia z bieżącej gałęzi do zdalnego repozytorium, generalnie zaleca się, aby nie używać rebase w tej gałęzi, aby uniknąć konfliktów i niechlujnej historii zatwierdzeń.
Branch
Przełączanie
Przełączanie gałęzi w Git odnosi się do procesu przechodzenia z jednej gałęzi do drugiej. Kiedy przełączasz gałęzie, Git przesuwa wskaźnik HEAD do nowej gałęzi, umożliwiając pracę na tej gałęzi i wprowadzanie zmian bez wpływu na inne gałęzie.
Załóżmy na przykład, że masz gałęzie feature-branch
i pliki main
. Aby przełączyć się na feature-branch
, użyjesz następującego polecenia:
git checkout feature-branch
Po przełączeniu gałęzi możesz dokonać zmian w katalogu roboczym. Wszystkie polecenia commit
, add
, i checkout
zostaną zastosowane do bieżącej gałęzi.
Na przykład, jeśli dodasz nowy plik i zatwierdzisz go w dniu feature-branch
, tylko ta gałąź będzie zawierała zatwierdzenie, podczas gdy main
pozostanie to nienaruszone. Pozwala to na rozwijanie osobnych funkcji, naprawianie błędów lub niezależną pracę nad różnymi wersjami kodu. W razie potrzeby możesz przełączać się między gałęziami, aby pracować nad każdą gałęzią osobno.