Git dla początkujących. Wszystko, co musisz wiedzieć na start
Kiedy uczyłem się programować, git był jedną z tych rzeczy, które odkładałem “na później”. Pisałem kod, zapisywałem pliki, robiłem kopie folderów nazwane “projekt_v2_final_FINAL”. Brzmi znajomo?
Potem straciłem dwa dni pracy, bo nadpisałem plik. I wtedy nauczyłem się gita. W jeden wieczór. I żałowałem, że nie zrobiłem tego wcześniej.
Git to nie jest trudne narzędzie. Jest źle tłumaczone. Większość tutoriali zaczyna od teorii grafów i DAG-ów. Ty potrzebujesz wiedzieć 5 komend i jeden workflow. Reszta przyjdzie z czasem.
Co to jest git
Git to system kontroli wersji. Zapisuje historię zmian w Twoim kodzie. Każda zmiana (commit) to migawka stanu projektu w danym momencie.
Pomyśl o tym jak o “ctrl+z na sterydach”. Ale zamiast cofać się o jedną zmianę, możesz cofnąć się do dowolnego momentu w historii projektu. Do stanu sprzed minuty, dnia, miesiąca.
Git działa lokalnie (na Twoim komputerze). GitHub, GitLab, Bitbucket to platformy, które hostują Twoje repozytoria w chmurze, żebyś mógł współpracować z innymi i mieć backup.
Git vs GitHub
To nie to samo. Ludzie mylą to cały czas.
Git to narzędzie. Instalujesz je na komputerze, używasz w terminalu. Działa offline.
GitHub to platforma. Hostuje repozytoria git w internecie. Dodaje interfejs webowy, pull requesty, issues, actions. To jak Dropbox dla kodu, ale z supermocami.
Możesz używać gita bez GitHuba. Nie możesz używać GitHuba bez gita.
Instalacja
Mac: brew install git (albo zainstaluj Xcode Command Line Tools)
Linux: sudo apt install git
Windows: pobierz z git-scm.com. Zainstaluj z domyślnymi ustawieniami.
Sprawdź, czy działa: git --version. Jeśli widzisz numer wersji, git jest gotowy.
Skonfiguruj swoje dane (git dopisuje je do każdego commita):
bash
git config --global user.name "Twoje Imię"
git config --global user.email "[email protected]"
5 komend, które musisz znać
Serio, na start potrzebujesz tylko tych pięciu:
git init
Tworzy nowe repozytorium git w aktualnym folderze.
bash
cd moj-projekt
git init
Od tego momentu git śledzi zmiany w tym folderze. Robi to, tworząc ukryty folder .git z całą historią.
git add
Mówi gitowi, które pliki chcesz zapisać w następnym commicie.
bash
git add index.html # dodaj konkretny plik
git add src/ # dodaj cały folder
git add . # dodaj wszystko (uwaga: to dodaje WSZYSTKO)
To jest “staging area”. Wybierasz, co wchodzi do commita, a co nie.
git commit
Zapisuje migawkę projektu z opisem, co zmieniłeś.
bash
git commit -m "dodaj stronę główną"
Każdy commit ma unikalny identyfikator (hash), datę, autora i wiadomość. To jest Twoja historia.
Zasada: commituj często, z krótkimi, opisowymi wiadomościami. Nie “fix” albo “changes”. Raczej “napraw walidację formularza kontaktowego” albo “dodaj dark mode do nawigacji”.
git push
Wysyła Twoje commity na zdalny serwer (np. GitHub).
bash
git push origin main
Od teraz Twój kod jest w chmurze. Masz backup i inni mogą go zobaczyć.
git pull
Pobiera najnowsze zmiany ze zdalnego serwera.
bash
git pull origin main
Używasz tego, kiedy ktoś inny (albo Ty z innego komputera) dodał zmiany do repozytorium.
Podstawowy workflow
Oto cały workflow, którego używam na co dzień:
bash
# 1. Sprawdź status (co się zmieniło?)
git status
# 2. Dodaj zmienione pliki
git add .
# 3. Zapisz zmiany z opisem
git commit -m "dodaj sekcję kontakt do strony głównej"
# 4. Wyślij na GitHub
git push
To tyle. 4 komendy. Powtarzasz ten cykl kilka razy dziennie.
Branche (gałęzie)
Kiedy poczujesz się pewnie z podstawami, następny krok to branche.
Branch to kopia Twojego kodu, na której możesz pracować bez wpływania na główną wersję (main). Chcesz dodać nowy feature? Tworzysz branch, pracujesz, testujesz, a kiedy wszystko działa, łączysz (merge) z main.
bash
# Stwórz nowy branch i przejdź na niego
git checkout -b nowy-feature
# Pracuj, commituj...
git add .
git commit -m "dodaj filtr produktów"
# Wróć na main i połącz
git checkout main
git merge nowy-feature
Dlaczego to ważne? Bo w zespole kilka osób pracuje jednocześnie. Branche pozwalają każdemu pracować niezależnie i łączyć zmiany bez konfliktów (no, prawie bez konfliktów).
W mojej agencji każdy feature to osobny branch. Code review na GitHubie. Merge po akceptacji. Żadne “wrzucam prosto na main”.
GitHub: pierwsza publikacja
Chcesz wrzucić projekt na GitHub? Oto jak:
- Utwórz konto na github.com
- Kliknij “New repository”, nazwij je, kliknij “Create”
- W terminalu, w folderze projektu:
bash
git remote add origin https://github.com/twoj-user/twoj-projekt.git
git push -u origin main
Gotowe. Twój kod jest na GitHubie. Każdy może go zobaczyć (jeśli repo jest publiczne) i masz backup na wypadek awarii dysku.
Dobry profil GitHub to element portfolio programisty. Regularne commity, czyste README, sensowne projekty. To mówi pracodawcy więcej niż lista technologii w CV.
.gitignore
Plik .gitignore mówi gitowi, które pliki ignorować. Nie chcesz commitować plików tymczasowych, zależności (node_modules) ani plików z hasłami (.env).
Przykład .gitignore dla projektu Node.js:
node_modules/
.env
.DS_Store
dist/
Zasada: nigdy nie commituj plików z hasłami, kluczami API i tokenami. Nigdy. Nawet do prywatnego repozytorium. Jak raz coś wrzucisz do gita, to jest tam na zawsze (w historii).
Najczęstsze błędy początkujących
“Commitnąłem coś, czego nie chciałem”. Spokojnie. git reset HEAD~1 cofnie ostatni commit (zmiany zostaną, ale commit zniknie).
“Mam konflikty przy merge”. To normalne. Git oznacza pliki z konfliktami. Otwierasz je, widzisz obie wersje, wybierasz właściwą (lub łączysz ręcznie), commitasz.
“Zapomniałem o .gitignore i wrzuciłem node_modules”. Dodaj .gitignore, potem: git rm -r --cached node_modules i commitnij. Folder zostanie na dysku, ale git przestanie go śledzić.
“Nie wiem, co napisać w commit message”. Opisz CO zrobiłeś i DLACZEGO. Nie jak. “Napraw bug z logowaniem przez Google SSO” jest lepsze niż “fix bug” i lepsze niż “zmień linię 47 w auth.ts”.
Co dalej po podstawach
Kiedy ogarniesz podstawy, warto poznać:
- git stash (schowaj tymczasowe zmiany)
- git rebase (alternatywa dla merge, czystsza historia)
- git log –oneline (przeglądaj historię)
- Pull requesty na GitHubie (code review w zespole)
- GitHub Actions (automatyzacja CI/CD)
Ale to na później. Na teraz: add, commit, push, pull, status. Tych pięć komend wystarczy, żebyś zaczął. Reszty nauczysz się w praktyce.
Git to jedno z tych narzędzi, które raz opanowane, używasz każdego dnia do końca kariery. Warto zainwestować ten jeden wieczór.
Powiązane wpisy
-
Obsidian Sync vs iCloud vs Git. Jak synchronizuję vault między laptopem a telefonem
Trzy lata temu siedziałem w kawiarni w Krakowie z padającym laptopem. Notatka, której potrzebowałem do spotkania za 2...