0Pricing
Frontend Academy · Lekcja

Rozgałęzianie: branch, checkout, merge

Proszę tworzyć gałęzie funkcji, przełączać się między nimi, scalać gałęzie z powrotem z main oraz rozwiązywać proste konflikty scalania.

Rozgałęzianie: branch, checkout, merge to bezpłatna lekcja Frontend Academy 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 Frontend Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Frontend Academy zawiera 4 lekcji w sumie.

Po co są gałęzie?

Gałęzie umożliwiają równoległe tworzenie wielu funkcji i naprawianie błędów bez wzajemnego zakłócania pracy. Gałąź main (lub master) pozostaje stabilna, a prace w toku znajdują się w gałęziach funkcjonalności.

Wyświetlanie i tworzenie gałęzi

git branch wyświetla listę gałęzi. git branch name tworzy nową gałąź. Nowa gałąź rozpoczyna się od bieżącego commita.

git branch             # list all branches
git branch feature/auth # create a new branch
git branch -d feature/auth # delete merged branch

Przełączanie gałęzi

git checkout branchname przełącza na istniejącą gałąź. git checkout -b branchname tworzy gałąź i przełącza na nią w jednym kroku. Nowoczesny odpowiednik: git switch.

git checkout main           # switch to main
git checkout feature/auth   # switch to existing branch
git checkout -b hotfix/nav  # create + switch

# Modern (git 2.23+):
git switch main
git switch -c feature/auth

Typowy przepływ pracy z gałęziami

1) Przełącz się na main. 2) Pobierz najnowsze zmiany. 3) Utwórz gałąź funkcjonalności. 4) Wykonuj commity. 5) Scal zmiany z powrotem z main. 6) Usuń gałąź funkcjonalności.

git switch main
git pull
git switch -c feature/dark-mode
# ... make commits ...
git switch main
git merge feature/dark-mode
git branch -d feature/dark-mode

Scalanie gałęzi

git merge branchname włącza zmiany z nazwanej gałęzi do bieżącej gałęzi. Git próbuje scalić je automatycznie. Scalanie fast-forward ma miejsce, gdy historia jest spójna.

git switch main
git merge feature/auth
# Fast-forward: no merge commit if history is linear

Commity scalające

Gdy obie gałęzie się rozeszły, Git tworzy commit scalający, który ma dwa commity nadrzędne. Zachowuje to pełną historię obu linii rozwoju.

Konflikty scalania

Gdy ten sam plik został zmieniony w obu gałęziach, Git nie może scalić zmian automatycznie i oznacza konflikt. Należy edytować plik, aby go rozwiązać, a następnie wykonać commit.

<<<<<<< HEAD
const COLOR = 'blue';
=======
const COLOR = 'red';
>>>>>>> feature/theming

// After resolving:
const COLOR = 'navy'; // your decision

git add styles.css
git commit

git rebase — historia liniowa

git rebase main odtwarza commity gałęzi na podstawie najnowszej wersji main, tworząc liniową historię bez commitów scalających. Używaj tego w przypadku gałęzi funkcjonalności przed scaleniem; unikaj rebase na współdzielonych gałęziach.

git switch feature/auth
git rebase main  # replay commits on top of current main

HEAD — bieżące położenie

HEAD to wskaźnik bieżącego końca gałęzi (lub konkretnego commita w stanie detached HEAD). git log pokazuje położenie HEAD. HEAD~1 oznacza poprzedni commit, a HEAD~3 — commit sprzed trzech commitów.

Przechowywanie pracy w toku

git stash zapisuje niezacommitowane zmiany i przywraca czyste drzewo robocze. Używaj go, gdy trzeba przełączyć gałąź bez wykonywania commita z nieukończoną pracą. git stash pop przywraca te zmiany.

git stash           # save WIP
git switch hotfix/urgent
# ... fix and commit ...
git switch feature/auth
git stash pop       # restore WIP

Konwencje nazewnictwa gałęzi

Typowe wzorce to: feature/feature-name, fix/bug-description, hotfix/critical-fix, chore/dependency-update. Spójne nazewnictwo ułatwia czytanie listy gałęzi.

Szybkie sprawdzenie

Jakie polecenie tworzy nową gałąź i przełącza na nią w jednym kroku?

Podsumowanie: gałęzie w Git

git branch tworzy gałęzie. git checkout/switch służy do poruszania się między nimi. git merge integruje zmiany. Konflikty należy rozwiązywać, edytując bloki znaczników konfliktu. git stash zapisuje pracę w toku. git rebase służy do tworzenia liniowej historii. Nową pracę należy wykonywać na gałęziach funkcjonalności, a main utrzymywać w stanie stabilnym. Usuwaj scalone gałęzie, aby zachować przejrzystość listy.

Często zadawane pytania

Czy lekcja „Rozgałęzianie: branch, checkout, merge” jest bezpłatna?

Tak — pełny tekst „Rozgałęzianie: branch, checkout, merge” 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 Frontend Academy, przejdź na CoddyKit PRO. Kurs Frontend Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Rozgałęzianie: branch, checkout, merge”?

Proszę tworzyć gałęzie funkcji, przełączać się między nimi, scalać gałęzie z powrotem z main oraz rozwiązywać proste konflikty scalania. Ćwiczysz Frontend Academy 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ąć Frontend Academy?

Nie wymagamy żadnego doświadczenia. Frontend Academy 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 „Rozgałęzianie: branch, checkout, merge”?

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 Frontend Academy?

Tak. Każda lekcja Frontend Academy 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. git init, add, commit i status
  2. Rozgałęzianie: branch, checkout, merge
  3. Zdalne repozytoria: push, pull, clone
  4. Praca z pull requestami na GitHubie
← Powrót do Frontend Academy