Git Rebase i Branch Przełączanie

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.