Interaktywne rebase i modyfikowanie commitów
Naucz się przepisywać historię za pomocą `git rebase -i`, aby tworzyć bardziej przejrzyste commity, oraz używać `git commit --amend` do modyfikowania ostatniego commita.
Interaktywne rebase i modyfikowanie commitów to bezpłatna lekcja Git Advanced: Monorepo, Submodules & Workflows na CoddyKit. To lekcja 1 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 Advanced: Monorepo, Submodules & Workflows, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Git Advanced: Monorepo, Submodules & Workflows zawiera 4 lekcji w sumie.
Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.
Clean Up Your Git History
Git history gets messy — a forgotten file, a typo'd message, ten tiny commits that should be one. Git lets you rewrite history to clean it up.
Amending Your Last Commit
git commit --amend fixes your most recent commit: change the message, add forgotten files, or tweak content. It replaces the last commit with a tidier one.
Amending a Commit Example
Forgot a file right after committing? Stage it, then git commit --amend folds it into the last commit. Here's the flow.
# 1. Make some changes and commit
echo "Initial content" > file1.txt
git add file1.txt
git commit -m "Add file1"
# 2. Realize you forgot file2.txt
echo "More content" > file2.txt
git add file2.txt
# 3. Amend the last commit to include file2.txt
git commit --amend --no-editIntroducing Interactive Rebase
Need to fix commits further back, not just the last one? Interactive rebase (git rebase -i) is a full editor for a series of commits.
Getting Started with Rebase -i
Start an interactive rebase by naming a commit before your target range. To edit the last three commits, use HEAD~3.
git rebase -i HEAD~3Rebase Commands: Pick, Reword, Squash
The rebase editor lists commits with commands you can swap: pick keeps it, reword edits the message, squash/fixup merge it up, edit pauses to amend.
Rewording a Commit Message
To change an older commit's message, switch its line from pick to reword in the editor. Git then prompts you for the new message.
# Original rebase editor content:
# pick 8a9b3c4 Add initial feature
# pick d1e2f34 Fix typo in docs
# Change 'pick' to 'reword' for the first commit:
# reword 8a9b3c4 Add initial feature
# pick d1e2f34 Fix typo in docsSquashing Commits Together
Got several small commits that belong together? squash merges them into one meaningful commit — change the lines below pick to squash.
# Original commits:
# pick abc1234 Add user registration form
# pick def5678 Add validation for email field
# pick ghi9012 Fix styling on form
# To squash the last two into the first:
# pick abc1234 Add user registration form
# squash def5678 Add validation for email field
# squash ghi9012 Fix styling on formEditing an Older Commit
The edit command pauses the rebase at a specific commit. Make changes, git add, git commit --amend, then git rebase --continue.
When to Be Careful with Rewriting
Rewriting changes commit IDs — safe for local-only commits. Never rewrite history that's already pushed and shared; it wrecks your collaborators' work.
Quick Check: History Rewriting
You've made a commit with the message "Fix bug". You then realize you forgot to include one small file in that commit. What is the most appropriate Git command to fix this, assuming you haven't pushed the commit yet?
Recap: Cleaner Commits
Recap: git commit --amend fixes the last commit, while git rebase -i rewrites a series — reword, squash, fixup, or edit. Just be careful on shared branches.
Często zadawane pytania
Czy lekcja „Interaktywne rebase i modyfikowanie commitów” jest bezpłatna?
Tak — pełny tekst „Interaktywne rebase i modyfikowanie commitów” 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 Advanced: Monorepo, Submodules & Workflows, przejdź na CoddyKit PRO. Kurs Git Advanced: Monorepo, Submodules & Workflows zawiera 4 lekcji w sumie.
Co nauczysz się w „Interaktywne rebase i modyfikowanie commitów”?
Naucz się przepisywać historię za pomocą `git rebase -i`, aby tworzyć bardziej przejrzyste commity, oraz używać `git commit --amend` do modyfikowania ostatniego commita. Ćwiczysz Git Advanced: Monorepo, Submodules & Workflows 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 Advanced: Monorepo, Submodules & Workflows?
Nie wymagamy żadnego doświadczenia. Git Advanced: Monorepo, Submodules & Workflows 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 1 z 4.
Ile czasu zajmuje lekcja „Interaktywne rebase i modyfikowanie commitów”?
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 Advanced: Monorepo, Submodules & Workflows?
Tak. Każda lekcja Git Advanced: Monorepo, Submodules & Workflows 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
- Interaktywne rebase i modyfikowanie commitów
- Przechowywanie i wybieranie zmian
- Reflog do odzyskiwania danych
- Bisect: wyszukiwanie błędnych commitów