Git dla początkujących – jak zacząć korzystać z kontroli wersji
Wyobraź sobie, że pracujesz nad ważnym projektem i nagle zdajesz sobie sprawę, że wczorajsza wersja kodu działała świetnie, ale dzisiaj – po kilku zmianach – wszystko się posypało. Bez systemu kontroli wersji jedyną opcją jest mozolne cofanie zmian ręcznie. Z Gitem wystarczy kilka poleceń, aby wrócić do dowolnego punktu w historii projektu. Brzmi dobrze? Zaczynamy!
Czym jest Git i dlaczego warto go używać?
Git to rozproszony system kontroli wersji (ang. Distributed Version Control System), stworzony w 2005 roku przez Linusa Torvaldsa – tego samego człowieka, który stworzył jądro Linuxa. Jego głównym zadaniem jest śledzenie zmian w plikach, najczęściej w kodzie źródłowym oprogramowania.
Dlaczego warto go używać? Oto kilka kluczowych powodów:
- Historia zmian – każda modyfikacja jest zapisana wraz z informacją, kto ją wprowadził i kiedy.
- Praca zespołowa – wiele osób może pracować nad tym samym projektem równocześnie, bez nadpisywania wzajemnie swoich zmian.
- Bezpieczeństwo – możesz eksperymentować z kodem bez ryzyka utraty działającej wersji.
- Cofanie zmian – błąd można naprawić, wracając do poprzedniej wersji w kilka sekund.
- Przenośność – repozytoria Git działają na Windows, macOS i Linux.
Git jest dziś standardem w branży IT. Praktycznie każda firma zajmująca się tworzeniem oprogramowania używa go na co dzień, dlatego znajomość podstaw Gita to absolutna konieczność dla każdego aspirującego programisty.
Instalacja Gita
Przed rozpoczęciem pracy z Gitem musisz go zainstalować na swoim komputerze. Oto instrukcje dla najpopularniejszych systemów operacyjnych:
Windows
Pobierz instalator ze strony git-scm.com i uruchom go, pozostawiając domyślne ustawienia. Instalator dostarczy Ci Git Bash – terminal, w którym będziesz wpisywał polecenia Git.
macOS
Na macOS możesz zainstalować Git przez Homebrew, wpisując w terminalu:
brew install git
Alternatywnie, Git jest często preinstalowany wraz z Xcode Command Line Tools.
Linux (Ubuntu/Debian)
sudo apt update
sudo apt install git
Po instalacji sprawdź, czy Git działa poprawnie, wpisując:
git --version
Powinieneś zobaczyć numer zainstalowanej wersji, np. git version 2.43.0.
Pierwsza konfiguracja
Zanim zaczniesz używać Gita, musisz podać swoje dane – Git będzie je zapisywał przy każdym commicie (zapisie zmian). Wpisz poniższe polecenia w terminalu, zastępując dane przykładowymi własnymi:
git config --global user.name "Jan Kowalski"
git config --global user.email "jan.kowalski@example.com"
Opcja --global oznacza, że te ustawienia będą obowiązywać dla wszystkich projektów na Twoim komputerze. Możesz też ustawić domyślny edytor tekstu, np. VS Code:
git config --global core.editor "code --wait"
Kluczowe pojęcia, które musisz znać
Zanim przejdziemy do praktyki, warto zapoznać się z kilkoma podstawowymi terminami:
- Repozytorium (repo) – folder projektu śledzony przez Gita, zawierający całą historię zmian.
- Commit – zapis stanu plików w danym momencie, jak "migawka" projektu.
- Branch (gałąź) – niezależna linia rozwoju projektu, pozwalająca pracować nad różnymi funkcjami równocześnie.
- Merge – łączenie zmian z różnych gałęzi.
- Remote – zdalne repozytorium, np. na GitHubie, z którym synchronizujesz lokalną pracę.
- Clone – pobranie kopii zdalnego repozytorium na lokalny komputer.
- Push/Pull – wysyłanie zmian do zdalnego repo (push) i pobieranie zmian z zdalnego repo (pull).
Tworzenie pierwszego repozytorium
Pora na praktykę! Stwórzmy pierwsze repozytorium Git. Otwórz terminal, przejdź do wybranego folderu i wpisz:
mkdir moj-projekt
cd moj-projekt
git init
Polecenie git init tworzy ukryty folder .git, w którym Git przechowuje całą historię projektu. Teraz Twój folder jest repozytorium Git!
Podstawowy workflow – dodawanie i zapisywanie zmian
Praca z Gitem opiera się na prostym cyklu: modyfikujesz pliki → dodajesz zmiany do tzw. staging area → zapisujesz commit.
Krok 1: Utwórz plik i sprawdź status
echo "Witaj, świecie!" > index.html
git status
Polecenie git status pokaże Ci, że plik index.html jest nowy i nieśledzony (ang. untracked).
Krok 2: Dodaj plik do staging area
git add index.html
Możesz dodać wszystkie zmienione pliki jednocześnie:
git add .
Krok 3: Zapisz commit
git commit -m "Dodaj plik index.html z powitaniem"
Flaga -m pozwala dodać wiadomość opisu commita bezpośrednio w poleceniu. Dobre wiadomości commitów są krótkie, konkretne i opisują, co zostało zmienione – to dobra praktyka, która bardzo pomaga w późniejszej analizie historii projektu.
Sprawdź historię commitów
git log
Zobaczysz listę wszystkich commitów z datą, autorem i wiadomością. Dla bardziej czytelnego widoku możesz użyć:
git log --oneline --graph
Praca z gałęziami (branches)
Gałęzie to jedna z najpotężniejszych funkcji Gita. Pozwalają tworzyć oddzielne "kopie" projektu, w których możesz eksperymentować bez wpływu na główną wersję kodu.
Tworzenie i przełączanie gałęzi
# Stwórz nową gałąź
git branch nowa-funkcja
# Przełącz się na nią
git checkout nowa-funkcja
# Lub zrób oba kroki jednocześnie
git checkout -b nowa-funkcja
We współczesnych wersjach Gita (2.23+) możesz używać nowszego polecenia:
git switch -c nowa-funkcja
Scalanie gałęzi (merge)
Gdy skończysz pracę na gałęzi i chcesz połączyć ją z główną gałęzią (zazwyczaj main lub master):
git checkout main
git merge nowa-funkcja
Praca ze zdalnym repozytorium – GitHub
GitHub to najpopularniejsza platforma do hostowania repozytoriów Git. Pozwala przechowywać kod w chmurze, współpracować z innymi i prezentować swoje projekty. Alternatywami są GitLab i Bitbucket.
Jak połączyć lokalne repo z GitHubem?
- Utwórz konto na github.com.
- Kliknij "New repository" i nadaj mu nazwę.
- Skopiuj adres URL nowego repozytorium.
- W terminalu, będąc w folderze projektu, wpisz:
git remote add origin https://github.com/twojanazwa/moj-projekt.git
git branch -M main
git push -u origin main
Od tej chwili możesz wysyłać nowe commity poleceniem git push i pobierać zmiany poleceniem git pull.
Klonowanie istniejącego repozytorium
Jeśli chcesz pobrać istniejący projekt z GitHuba:
git clone https://github.com/uzytkownik/nazwa-projektu.git
Najczęstsze polecenia Git – ściągawka
| Polecenie | Opis |
|---|---|
git init |
Inicjalizuje nowe repozytorium |
git status |
Pokazuje stan plików w repo |
git add . |
Dodaje wszystkie zmiany do staging area |
git commit -m "opis" |
Zapisuje commit z opisem |
git log --oneline |
Wyświetla skróconą historię commitów |
git branch |
Lista gałęzi w projekcie |
git checkout -b nazwa |
Tworzy i przełącza na nową gałąź |
git merge nazwa |
Scala wskazaną gałąź z bieżącą |
git push |
Wysyła zmiany do zdalnego repo |
git pull |
Pobiera i scala zmiany ze zdalnego repo |
Plik .gitignore – czego Git nie powinien śledzić?
Nie wszystkie pliki powinny trafiać do repozytorium. Pliki konfiguracyjne z hasłami, foldery z zależnościami (node_modules), pliki tymczasowe czy logi to przykłady rzeczy, które warto wykluczyć. Służy do tego plik .gitignore.
Utwórz plik .gitignore w głównym folderze projektu i dodaj do niego wzorce nazw plików, które Git ma ignorować, np.:
# Zależności Node.js
node_modules/
# Pliki środowiskowe
.env
# Logi
*.log
# Folder build
/dist
Strona gitignore.io pozwala automatycznie wygenerować odpowiedni plik .gitignore dla Twojego języka lub frameworka.
Dobre praktyki pracy z Gitem
- Commituj często i małymi porcjami – łatwiej śledzić zmiany i cofać konkretne błędy.
- Pisz sensowne wiadomości commitów – unikaj opisów typu "fix" czy "update". Lepiej: "Napraw błąd walidacji formularza logowania".
- Używaj gałęzi do każdej nowej funkcji – nie commituj bezpośrednio do gałęzi
main. - Regularnie synchronizuj się ze zdalnym repo –
git pullprzed rozpoczęciem pracy zmniejsza ryzyko konfliktów. - Nie commituj wrażliwych danych – haseł, kluczy API itp. Użyj zmiennych środowiskowych i pliku .gitignore.
Podsumowanie
Git może na początku wydawać się skomplikowany, ale podstawowy workflow – init, add, commit, push – jest prosty do opanowania po kilku dniach praktyki. Najważniejsze to zacząć używać Gita w każdym projekcie, nawet małym i prywatnym. Im wcześniej wyrobisz ten nawyk, tym szybciej kontrola wersji stanie się dla Ciebie naturalną częścią pracy programisty.
W kolejnych artykułach na techbyte.pl przyjrzymy się bardziej zaawansowanym tematom, takim jak rozwiązywanie konfliktów merge, rebase, cherry-pick czy popularne strategie pracy z gałęziami (Git Flow, GitHub Flow). Śledź nas i rozwijaj swoje umiejętności krok po kroku!