Dlaczego Git jest kluczowy dla programisty
Wyobraź sobie, że piszesz esej i co jakiś czas zapisujesz kopię: „esej_v1.doc”, „esej_v2.doc”, „esej_final.doc”, „esej_final_naprawde.doc”. Git robi to samo, ale elegancko i automatycznie dla Twojego kodu.
Co się nauczysz:
- Czym jest Git i dlaczego każdy programista go używa
- Jak zainstalować i skonfigurować Git na swoim komputerze
- 5 najważniejszych komend Git które używasz codziennie
- Jak cofnąć zmiany gdy coś pójdzie nie tak
- Podstawy pracy z GitHub jako zdalnym repozytorium
Czym jest Git i dlaczego powstał
Git to system kontroli wersji – narzędzie które śledzi zmiany w plikach w czasie. Został stworzony przez Linusa Torvaldsa (tego od Linuxa) w 2005 roku, bo istniejące narzędzia nie nadążały za potrzebami dużych projektów programistycznych.
Instalacja i pierwsza konfiguracja Git
Instalacja na różnych systemach
Windows:
Pobierz z git-scm.com i zainstaluj z domyślnymi ustawieniami. To da Ci Git Bash – terminal który „rozumie” komendy Unix.
macOS:
# Używając Homebrew (polecane) brew install git # Lub pobierz z git-scm.com
Ubuntu/Debian:
sudo apt update sudo apt install git
Pierwsza konfiguracja
Po instalacji musisz „przedstawić się” Git-owi:
# Ustaw swoje imię i nazwisko git config --global user.name "Jan Kowalski" # Ustaw swój email (ważne: użyj tego samego co na GitHub) git config --global user.email "jan.kowalski@example.com" # Sprawdź czy się zapisało git config --list
Podstawowe koncepcje – repozytorium, commit, branch
Repozytorium (Repository)
Commit
Branch (gałąź)
5 najważniejszych komend Git
1. git init – tworzenie nowego repozytorium
# Stwórz nowy folder dla projektu mkdir moj-pierwszy-projekt cd moj-pierwszy-projekt # Zainicjuj Git w tym folderze git init # Sprawdź status git status
Po git init pojawi się ukryty folder .git – to „mózg” Twojego repozytorium.
2. git add – dodawanie plików do staging area
# Stwórz plik echo "console.log('Hello World!');" > app.js # Dodaj jeden plik git add app.js # Lub dodaj wszystkie zmienione pliki git add . # Sprawdź co jest w staging area git status
3. git commit – zapisywanie zmian
# Commit z opisem w jednej linii git commit -m "Dodaj pierwszą wersję app.js" # Sprawdź historię commitów git log --oneline
4. git status – sprawdzanie stanu repozytorium
# Sprawdź co się dzieje w repozytorium git status # Krótka wersja git status -s
To najczęściej używana komenda – pokazuje które pliki są zmienione, które w staging area, a które niesledzą.
5. git log – przeglądanie historii
# Pełna historia git log # Skrócona (polecana na co dzień) git log --oneline # Historia z grafiką (dla branch'y) git log --oneline --graph # Historia z datami i autorami git log --pretty=format:"%h %an %ad %s" --date=short
Cofanie zmian – gdy coś pójdzie nie tak
Cofanie zmian które nie są jeszcze w commit
# Cofnij zmiany w konkretnym pliku git checkout -- app.js # Usuń plik ze staging area (ale zostaw zmiany w pliku) git reset app.js # Cofnij wszystkie zmiany do ostatniego commit git reset --hard HEAD
Cofanie commit’a
# Cofnij ostatni commit (ale zostaw zmiany w plikach) git reset --soft HEAD~1 # Cofnij ostatni commit i usuń zmiany git reset --hard HEAD~1 # Stwórz nowy commit który odwraca poprzedni (bezpieczniejsze) git revert HEAD
Podstawy pracy z GitHub
Łączenie lokalnego repo z GitHub
1. Stwórz nowe repozytorium na GitHub.com
2. Skopiuj URL z GitHub (np. https://github.com/twoja-nazwa/moj-projekt.git)
3. Połącz lokalne repo z GitHub:
# Dodaj remote (zdalne repo) git remote add origin https://github.com/twoja-nazwa/moj-projekt.git # Wyślij kod na GitHub git push -u origin master # Przy kolejnych push wystarczy git push
Pobieranie kodu z GitHub
# Sklonuj istniejące repo git clone https://github.com/ktos/jakis-projekt.git # Pobierz najnowsze zmiany git pull
Typowe błędy początkujących
Rozwiązanie: Zawsze rób git status przed git add.
Rozwiązanie: Pisz co robiłeś: „Dodaj walidację formularza”, „Napraw błąd w kalkulacji VAT”.
Rozwiązanie: Używaj pliku .gitignore i zmiennych środowiskowych.
Rozwiązanie: git status i git stash to Twoi przyjaciele.
Plik .gitignore – co nie powinno być w repo
Stwórz plik .gitignore w głównym folderze projektu:
# Pliki IDE .idea/ *.iml .vscode/ # Pliki systemu .DS_Store Thumbs.db # Pliki buildu *.class target/ build/ node_modules/ # Pliki konfiguracyjne z hasłami *.env config.properties database.config # Logi *.log logs/
Workflow na co dzień
Typowy dzień programisty z Git:
# Rano - pobierz najnowsze zmiany git pull # Sprawdź na czym pracujesz git status # Pracuj nad kodem... # (edytujesz pliki w IDE) # Co jakiś czas sprawdzaj co zmieniłeś git status git diff # Gdy skończysz kawałek funkcjonalności git add . git commit -m "Dodaj funkcję eksportu danych do CSV" # Na koniec dnia wyślij zmiany git push
Origin to domyślna nazwa dla zdalnego repozytorium (np. na GitHub). Master to nazwa branch’a. Komenda oznacza „wyślij branch master do zdalnego repo o nazwie origin”.
Tak, ale STRACISZ CAŁĄ HISTORIĘ projektu. Folder .git zawiera wszystkie informacje o commitach, branch’ach i remote repo. Po usunięciu zostanie Ci zwykły folder z plikami.
Użyj git commit –amend -m „Nowy opis”. UWAGA: to zmienia historię, więc rób to tylko z commitami które jeszcze nie są na serwerze.
To oznacza że „patrzysz” na konkretny commit, nie na branch. Zwykle po git checkout [commit-hash]. Wróć do normalnego stanu przez git checkout master.
Git ma trzystopniowy workflow: Working Directory (twoje pliki) → Staging Area (git add) → Repository (git commit). Możesz wybrać KTÓRE zmiany chcesz commitować, nie wszystkie na raz.
git diff pokazuje co zmieniłeś w plikach. git diff –staged pokazuje różnice w staging area. git diff HEAD~1 porównuje z poprzednim commitem.
Najpierw git pull żeby pobrać najnowsze zmiany z serwera. Jeśli są konflikty, rozwiąż je i zrób nowy commit. Potem git push powinno działać.
Przydatne zasoby:
- Oficjalna dokumentacja Git
- Gitignore.io – generator plików .gitignore
- GitHub – najpopularniejszy hosting Git
- Learn Git Branching – interaktywny tutorial
- Atlassian Git Tutorials
🚀 Zadanie dla Ciebie
Stwórz swoje pierwsze repozytorium:
- Stwórz folder „moj-pierwszy-git-projekt”
- Zainicjuj Git w tym folderze
- Stwórz plik README.md z opisem projektu
- Dodaj, commituj i wyślij na GitHub
- Edytuj README.md, zrób drugi commit
- Sprawdź historię komendą git log –oneline
Bonus: Stwórz plik .gitignore i dodaj do niego kilka typowych plików do ignorowania.
Czy masz już swoje pierwsze repo na GitHub? Podziel się linkiem w komentarzach – będziemy Cię dopingować! 🚀