Menu
Coddy logo textTech

Git Rebase

Ostatnia aktualizacja

git rebase przenosi commity twojej gałęzi tak, że są odtwarzane na wierzchu innej gałęzi. Daje to prostą, liniową historię zamiast commita scalającego. Interaktywny rebase (-i) idzie dalej i pozwala łączyć, zmieniać kolejność, edytować albo usuwać commity. Ponieważ rebase przepisuje commity, stosuj go tylko do pracy, której jeszcze nie udostępniono innym.

Wypróbuj te polecenia w terminalu online: prawdziwa powłoka w przeglądarce, bez żadnej instalacji.

git rebase odtwarza commity twojej gałęzi na szczycie main jako nowe kopie, zostawiając prostą, liniową historię.

Składnia

PolecenieCo robi
git rebase mainOdtwarza twoje commity na wierzchu main
git rebase -i HEAD~3Interaktywnie edytuje 3 ostatnie commity
git rebase --onto main old newPrzenosi zakres commitów na main
git rebase --continueWznawia po rozwiązaniu konfliktów
git rebase --abortAnuluje rebase i przywraca gałąź
git pull --rebasePull z rebase zamiast scalania

Słowa kluczowe interaktywnego rebase

W edytorze otwartym przez -i zamień pick na jedno z tych słów.

Słowo kluczoweCo robi
pickZostawia commit
rewordZostawia commit, edytuje jego wiadomość
squashWtapia w poprzedni commit, łączy wiadomości
fixupWtapia w poprzedni, odrzuca tę wiadomość
dropCałkowicie usuwa commit

Najczęstsze pytania o git rebase

Co robi git rebase?
Bierze commity z bieżącej gałęzi i odtwarza je jeden po drugim na wierzchu innej gałęzi, tak jakby praca zaczęła się od najnowszego commita tamtej gałęzi. Wynikiem jest liniowa historia bez commita scalającego. Przy okazji commity są przepisywane (dostają nowe hashe).
Czym jest interaktywny rebase?
git rebase -i <base> otwiera edytor z listą commitów od <base>, w którym możesz zmienić ich kolejność, połączyć kilka w jeden przez squash, zmienić wiadomości przez reword, edytować commit przez edit albo usunąć go przez drop. To główne narzędzie do porządkowania chaotycznej serii commitów przed ich udostępnieniem.
Jaka jest złota zasada rebase?
Nigdy nie rób rebase commitów, na których inni już oparli swoją pracę, czyli zwykle wszystkiego, co jest wypchnięte na wspólną gałąź. Ponieważ rebase przepisuje commity, zmusza to wszystkich innych do godzenia rozbieżnej historii. Na lokalnych, niewypchniętych commitach rób rebase bez obaw; do publicznych używaj merge albo revert.
Jak naprawić albo anulować rebase z konfliktami?
Gdy rebase zatrzyma się na konflikcie, rozwiąż pliki, dodaj je przez git add, a potem uruchom git rebase --continue. Użyj git rebase --skip, żeby pominąć bieżący commit, albo git rebase --abort, żeby anulować wszystko i przywrócić gałąź do stanu sprzed rozpoczęcia rebase.
Czy mogę to przećwiczyć online?
Tak. Otwórz terminal online i uruchom git rebase w prawdziwej powłoce w przeglądarce, bez żadnej instalacji. Darmowy interaktywny kurs Git w Coddy też krok po kroku omawia rebase.
Ilustracja języków programowania w Coddy

Ucz się Gita z Coddy

ZACZNIJ