SandboxOne

~/nauka programowania od podstaw

Piaskownica

~/podstawy/git-dla-poczatkujacych.md

Git dla początkujących: commit, gałąź i merge bez stresu

Paweł ZielińskiPaweł Zieliński 5 min czytania akt.
9,0/10241 ocen
Programiści pracujący przy biurkach z kilkoma monitorami w otwartym biurze
Programiści pracujący przy biurkach z kilkoma monitorami w otwartym biurze.

Git to system kontroli wersji, z którego korzysta niemal każdy zespół programistyczny na świecie. Na początku wygląda jak zestaw tajemniczych zaklęć wpisywanych w terminal. W rzeczywistości opiera się na kilku prostych pojęciach – gdy je zrozumiesz, komendy przestaną być straszne.

Po co w ogóle Git

Wyobraź sobie, że piszesz projekt i co jakiś czas zapisujesz kopię folderu: projekt, projekt-dziala, projekt-final, projekt-final-2. Po miesiącu nie wiesz, czym różnią się te wersje ani która była ostatnią działającą. Git rozwiązuje dokładnie ten problem, tylko elegancko.

Każdy zapis stanu projektu w Gicie to commit – migawka z opisem, datą i autorem. Możesz w dowolnej chwili wrócić do starszej migawki, porównać dwie wersje linijka po linijce albo sprawdzić, kto i dlaczego zmienił konkretny fragment kodu.

Git działa lokalnie, na Twoim komputerze, więc nie potrzebujesz internetu, żeby z niego korzystać. Serwisy takie jak GitHub, GitLab czy Bitbucket to osobne usługi, które przechowują kopię repozytorium w chmurze i ułatwiają współpracę.

Git przydaje się nawet wtedy, gdy pracujesz zupełnie sam. Pozwala bez strachu eksperymentować: jeśli nowy pomysł nie wypali, wracasz do ostatniej działającej wersji jedną komendą. Z czasem historia commitów staje się też dziennikiem Twojej nauki – widać w niej, jak rosły projekty i jakie problemy po drodze rozwiązywałeś. Właśnie dlatego rekruterzy tak chętnie zaglądają do repozytoriów kandydatów.

Trzy strefy: katalog roboczy, poczekalnia i historia

Kluczem do zrozumienia Gita są trzy miejsca, przez które przechodzą Twoje zmiany. Katalog roboczy to pliki, które edytujesz. Poczekalnia (ang. staging area) to lista zmian przygotowanych do zapisania. Historia to zatwierdzone commity.

terminalTerminal
git init
git status
git add index.html
git commit -m "Dodaj szkielet strony"
git log --oneline

Po co poczekalnia? Dzięki niej możesz zmienić pięć plików, a zapisać w jednym commicie tylko dwa, które dotyczą tej samej poprawki. Historia jest wtedy czytelna: każdy commit opowiada jedną małą historię.

Komenda git status jest Twoim najlepszym przyjacielem. Uruchamiaj ją często – pokazuje, które pliki są zmienione, które czekają w poczekalni i na jakiej gałęzi się znajdujesz.

Gałęzie i łączenie zmian

Gałąź (branch) to niezależna linia rozwoju projektu. Tworzysz ją, gdy chcesz spróbować czegoś nowego bez ryzyka zepsucia działającej wersji. Główna gałąź zwykle nazywa się main.

terminalTerminal
git switch -c nowy-naglowek
# edytujesz pliki, potem:
git add .
git commit -m "Zmień nagłówek strony"
git switch main
git merge nowy-naglowek

Czasem Git nie potrafi sam połączyć zmian, bo na obu gałęziach zmodyfikowano tę samą linię. Powstaje wtedy konflikt. Nie panikuj: Git oznacza w pliku oba warianty znacznikami <<<<<<< i >>>>>>>. Wybierasz właściwą wersję, usuwasz znaczniki, dodajesz plik do poczekalni i robisz commit. Edytory takie jak VS Code pokazują konflikty graficznie, z przyciskami do wyboru wariantu.

Długi korytarz serwerowni z szafami pełnymi sprzętu
Zdalne repozytorium to po prostu kopia Twojej historii zapisana na serwerze.

GitHub i praca ze zdalnym repozytorium

Zdalne repozytorium to kopia Twojego projektu na serwerze. Komenda git push wysyła do niego Twoje commity, a git pull pobiera zmiany, które wprowadzili inni. Przy pierwszym połączeniu musisz skonfigurować uwierzytelnianie – najwygodniej przez klucz SSH albo menedżer poświadczeń.

W pracy zespołowej zmiany rzadko trafiają prosto do main. Zamiast tego tworzysz gałąź, wypychasz ją na serwer i otwierasz pull request – prośbę o włączenie zmian. Koledzy mogą wtedy przejrzeć kod, zostawić komentarze i zaakceptować poprawki. Ten proces nazywa się code review i jest jednym z najlepszych sposobów nauki.

Dla osoby szukającej pierwszej pracy profil na GitHubie pełni rolę portfolio. Regularne commity z sensownymi opisami pokazują rekruterowi, że umiesz pracować systematycznie.

Na start wystarczy darmowe konto. Zadbaj o czytelną nazwę użytkownika, zdjęcie lub awatar oraz krótki opis profilu, w którym napiszesz, czego się uczysz.

Cofanie zmian bez paniki

Największa zaleta Gita ujawnia się wtedy, gdy coś pójdzie nie tak. Zmieniłeś plik i żałujesz? Komenda git restore przywróci go do stanu z ostatniego commitu. Dodałeś do poczekalni za dużo? git restore --staged wycofa plik z poczekalni, ale zostawi Twoje zmiany.

Jeśli błędny commit trafił już na serwer, nie przepisuj historii. Użyj git revert, który tworzy nowy commit odwracający zmiany starego. Historia pozostaje uczciwa, a współpracownicy nie muszą niczego naprawiać u siebie. Komendy takie jak git reset --hard czy wymuszone push zostaw na później, gdy dobrze zrozumiesz, co robią.

Ściągawka i dobre nawyki

KomendaCo robi
git inittworzy nowe repozytorium w bieżącym folderze
git clone <adres>pobiera istniejące repozytorium
git add <plik>dodaje zmiany do poczekalni
git commit -m "opis"zapisuje migawkę z opisem
git log --onelinepokazuje skróconą historię
git switch -c <nazwa>tworzy gałąź i przełącza się na nią
git restore <plik>cofa niezapisane zmiany w pliku

Pisz opisy commitów w trybie rozkazującym i konkretnie: „Dodaj walidację formularza kontaktowego” mówi więcej niż „poprawki”. Rób małe commity – łatwiej je zrozumieć i łatwiej cofnąć. Nigdy nie zapisuj w repozytorium haseł, kluczy API ani plików z danymi osobowymi; do ignorowania plików służy plik .gitignore.

Klawiatura i monitor na czarnym biurku w nowoczesnym pokoju
Krótkie, częste commity to najlepszy nawyk, jaki możesz wyrobić na początku.

Najczęstsze pytania

Czym różni się Git od GitHuba?

Git to program do wersjonowania działający na Twoim komputerze. GitHub to serwis internetowy, który przechowuje repozytoria Gita i dodaje narzędzia do współpracy, takie jak pull requesty i zgłoszenia błędów.

Czy muszę używać terminala?

Nie jest to obowiązkowe, bo istnieją graficzne klienty Gita i integracja w edytorach. Warto jednak znać podstawowe komendy, bo pomagają zrozumieć, co dzieje się pod spodem, i przydają się na rozmowach rekrutacyjnych.

Co zrobić, gdy commit trafił na złą gałąź?

Jeśli jeszcze go nie wypchnąłeś, możesz przenieść go komendą git cherry-pick na właściwą gałąź, a z błędnej usunąć przez git reset. Przed takimi operacjami zrób kopię folderu, dopóki nie poczujesz się pewnie.

Jak często robić commit?

Za każdym razem, gdy skończysz małą, logiczną zmianę, która działa. Dla początkujących dobrą miarą jest kilka commitów na jedną sesję nauki.

Wróć do archiwum