Git to system kontroli wersji stworzony przez Linusa Torvaldsa. Bez niego współpraca w zespołach programistycznych byłaby niemożliwa. GitHub, GitLab i Bitbucket to platformy hostujące repozytoria Git. Znajomość Gita to absolutne minimum dla każdego, kto chce pracować jako programista.
Instalacja i konfiguracja
- Pobierz Git: git-scm.com (Windows) lub
brew install git(Mac) - Ustaw tożsamość:
git config --global user.name "Imię"igit config --global user.email "email" - Klucz SSH do GitHub:
ssh-keygen -t ed25519→ dodaj klucz publiczny w GitHub Settings
Komendy, których używasz każdego dnia

git init— utwórz nowe repozytoriumgit clone [url]— pobierz istniejące repogit add .— dodaj wszystkie zmiany do stagegit commit -m "opis"— zapisz snapshotgit push— wyślij na GitHubgit pull— pobierz i merge zmiany z remotegit status/git log --oneline— stan i historia
Gałęzie (branches) — jak pracować w zespole
git checkout -b feature/login— nowa gałąź dla funkcjonalności- Pracuj, commituj na swojej gałęzi
git push -u origin feature/login— wyślij gałąź- Otwórz Pull Request na GitHub — poproś o code review
- Po akceptacji: merge do main, usuń gałąź
Rozwiązywanie konfliktów merge
Konflikt pojawia się, gdy dwie osoby edytowały ten sam fragment kodu. Git oznacza konflikt w pliku:
- Otwórz plik, znajdź znaczniki <<<<<<< HEAD i >>>>>>>
- Zachowaj właściwy kod, usuń znaczniki
git add plik.py→git commit— zakończ merge- VS Code i IntelliJ mają wizualne narzędzia do rozwiązywania konfliktów
GitHub Actions — automatyzacja CI/CD
GitHub Actions to darmowy (do 2000 min/mies.) system automatyzacji. Uruchamia testy, buduje aplikację i deployuje po każdym push — bez żadnej infrastruktury. Plik .github/workflows/test.yml to wszystko, czego potrzebujesz.
💡 Dobre praktyki commitów
Używaj Conventional Commits: fix(auth): poprawka logowania. Commit musi opisywać DLACZEGO, nie CO (co widać w diff). Nigdy nie commituj sekretów (.env, kluczy API) — używaj GitHub Secrets lub .gitignore.
Szukasz sprzątu w dobrej cenie?
Monitory i klawiatury dla programistów w NJCOD
