0Pricing
Git & GitHub Professional Workflow · Lekcja

Interaktywny rebase historii

Używaj interaktywnego rebase do przepisywania historii commitów, łączenia commitów, zmiany ich kolejności lub edytowania komunikatów przed wypchnięciem zmian.

Interaktywny rebase historii to bezpłatna lekcja Git & GitHub Professional Workflow na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Git & GitHub Professional Workflow, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Git & GitHub Professional Workflow zawiera 4 lekcji w sumie.

Poznajemy interaktywne przenoszenie zmian

Witamy w potężnym narzędziu Git: interaktywnym rebase! Umożliwia ono przepisanie historii commitów projektu przed udostępnieniem jej innym osobom.

Można myśleć o nim jak o wehikule czasu dla commitów — pozwala uporządkować, połączyć lub zmienić kolejność zmian, aby utworzyć przejrzystą, liniową historię pracy.

Dlaczego porządkować historię?

Dlaczego warto przepisywać historię?

  • Przejrzystość: dziennik commitów projektu staje się łatwy do przeczytania i zrozumienia.
  • Zwięzłość: można połączyć małe, przyrostowe commity w jedną znaczącą zmianę.
  • Debugowanie: uporządkowana historia ułatwia korzystanie z narzędzi takich jak git bisect w celu znalezienia miejsca wprowadzenia błędu.
  • Lepsze pull requesty: można przedstawić współpracownikom dopracowany zestaw zmian.

Rozpoczynanie interaktywnego rebase

Aby rozpocząć interaktywny rebase, należy użyć polecenia git rebase -i. Trzeba określić, jak daleko wstecz chcemy się cofnąć.

Na przykład, aby wykonać rebase 3 ostatnich commitów bieżącej gałęzi, należy użyć:

git rebase -i HEAD~3

Spowoduje to otwarcie edytora z 3 ostatnimi commitami i dostępnymi poleceniami.

Polecenia edytora rebase

Po rozpoczęciu interaktywnego rebase Git otwiera edytor tekstu z listą commitów i instrukcjami. Każdy commit rozpoczyna się od polecenia:

  • pick: użycie commita bez zmian.
  • reword: użycie commita, ale edycja jego komunikatu.
  • edit: użycie commita z zatrzymaniem w celu wprowadzenia poprawek.
  • squash: połączenie z poprzednim commitem wraz z połączeniem komunikatów.
  • fixup: połączenie z poprzednim commitem i odrzucenie komunikatu tego commita.
  • drop: całkowite usunięcie commita.

Przykład: zmiana komunikatu commita

Załóżmy, że w komunikacie commita znajduje się literówka. Można użyć reword, aby ją poprawić. Należy zmienić pick na reword obok commita, który ma zostać zmieniony:

pick 5a6b7c8 Add new feature
pick 1d2e3f4 Fix typo in docs
reword 9g0h1i2 Implement login screen

Po zapisaniu zmian i zamknięciu edytora Git poprosi o edycję komunikatu commita 9g0h1i2.

Przykład: łączenie commitów

Często wykonuje się kilka małych, powiązanych commitów, które mogłyby stanowić jeden commit. Do ich połączenia służy squash.

pick a1b2c3d Initial feature commit
squash e4f5g6h Add more details
fixup i7j8k9l Fix small bug

W tym przypadku e4f5g6h zostanie połączony z a1b2c3d, a ich komunikaty zostaną scalone. i7j8k9l również zostanie połączony z a1b2c3d, ale jego komunikat zostanie odrzucony (fixup).

Przykład: usuwanie commitów

Jeśli nie jest już potrzebny eksperymentalny commit, można po prostu usunąć go z historii za pomocą drop. Wystarczy zmienić pick na drop albo całkowicie usunąć wiersz:

pick 1122334 Initial setup
drop 5566778 Test experimental feature
pick 9900112 Add user authentication

Po zapisaniu commit 5566778 zostanie całkowicie usunięty z historii gałęzi.

Przykład: zmiana kolejności commitów

Można również zmienić kolejność commitów. Wystarczy wyciąć i wkleić wiersze w edytorze, aby zmienić ich układ. Git zastosuje zmiany w nowej kolejności.

Pierwotna kolejność:

pick abcdef1 Add feature A
pick 1234567 Add feature B

Zmieniona kolejność:

pick 1234567 Add feature B
pick abcdef1 Add feature A

Należy zachować ostrożność, ponieważ zmiana kolejności może spowodować konflikty, jeśli commity zależą od siebie.

Złota zasada: nie wykonuj rebase współdzielonej historii!

To niezwykle ważne: nigdy nie wykonuj rebase commitów, które zostały już wypchnięte do współdzielonego zdalnego repozytorium (takiego jak GitHub lub GitLab) i mogły zostać pobrane przez inne osoby.

Rebase przepisuje identyfikatory commitów. Jeśli inne osoby oparły swoją pracę na oryginalnych commitach, commity po rebase będą wyglądać jak całkowicie inna historia, powodując poważne konflikty i zamieszanie u wszystkich zainteresowanych.

Rebase wykonuj wyłącznie na commitach, które istnieją tylko na lokalnej gałęzi!

Sprawdzenie poleceń rebase

Ma Pan/Pani trzy commity: A (Initial), B (Minor fix), C (Refactor). Chce Pan/Pani połączyć B z A, zachowując oryginalny komunikat A, a następnie pozostawić C bez zmian. Jakich poleceń należy użyć w edytorze interaktywnego rebase (od najstarszego do najnowszego)?

Podsumowanie interaktywnego rebase

Opanował(a) Pan/Pani potężne polecenie git rebase -i!

  • Umożliwia ono przepisanie lokalnej historii commitów.
  • Można zmieniać komunikaty za pomocą reword, łączyć commity poleceniami squash lub fixup, usuwać niepotrzebne zmiany za pomocą drop, a nawet zmieniać kolejność commitów.
  • Zawsze należy pamiętać o złotej zasadzie: NIGDY nie wykonuj rebase commitów, które zostały już wypchnięte do współdzielonego repozytorium zdalnego.

Opanowanie interaktywnego rebase pomaga utrzymać przejrzystą i zrozumiałą historię projektu!

Często zadawane pytania

Czy lekcja „Interaktywny rebase historii” jest bezpłatna?

Tak — pełny tekst „Interaktywny rebase historii” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Git & GitHub Professional Workflow, przejdź na CoddyKit PRO. Kurs Git & GitHub Professional Workflow zawiera 4 lekcji w sumie.

Co nauczysz się w „Interaktywny rebase historii”?

Używaj interaktywnego rebase do przepisywania historii commitów, łączenia commitów, zmiany ich kolejności lub edytowania komunikatów przed wypchnięciem zmian. Ćwiczysz Git & GitHub Professional Workflow z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Git & GitHub Professional Workflow?

Nie wymagamy żadnego doświadczenia. Git & GitHub Professional Workflow w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Interaktywny rebase historii”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Git & GitHub Professional Workflow?

Tak. Każda lekcja Git & GitHub Professional Workflow zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Ręczne rozwiązywanie konfliktów scalania
  2. Interaktywny rebase historii
  3. Wybieranie commitów za pomocą cherry-pick
  4. Ponowne wykorzystywanie rozwiązań konfliktów za pomocą Git Rerere
← Powrót do Git & GitHub Professional Workflow