Poradnik Wersja kontroli 10 porad

Praca na GitHub
od podstaw do pro

Przewodnik po codziennej pracy z repozytoriami — commity, branche, Pull Requesty i więcej.

Podstawy

Inicjalizuj repozytorium z sensem

Każdy projekt zaczyna się od git init lub klonowania istniejącego repo. Kluczowe: od razu ustaw poprawną gałąź główną i połącz z remote.

# Nowe repo
git init my-project
cd my-project

# Połącz z GitHub
git remote add origin git@github.com:user/repo.git
git branch -M main
git push -u origin main
git init local repo git remote add połącz z GitHub git push -u origin main GitHub remote ✓ Lokalny folder → Remote → Dostępny online
Podstawy

Pisz commity jak dziennikarz — kto, co, po co

Dobry commit message to inwestycja w przyszłość. Użyj konwencji Conventional Commits: prefix + zakres + opis zmian.

$ git commit -m "feat(auth): dodaj logowanie przez Google OAuth" feat (auth) opis co i dlaczego typ zmiany zakres imperativus Typy: feat · fix · docs · refactor · chore · test
Złota reguła Commit = jedna logiczna zmiana. Nigdy nie mieszaj refactoru z bugfixem w jednym commicie.
Workflow

Branch to Twoja piaskownica — używaj go odważnie

Gałęzie są tanie. Twórz osobny branch na każdy feature, bugfix lub eksperyment. Nigdy nie commituj bezpośrednio na main.

main feature/nowy-panel hotfix/login-bug MERGE v1.0 branch v1.1
git checkout -b feature/moja-funkcja
# ... praca, commity ...
git push origin feature/moja-funkcja
Podstawy

.gitignore — nie commituj śmieci

Zanim zrobisz pierwszy commit, skonfiguruj .gitignore. Node modules, pliki .env, cache IDE — to wszystko nie należy do repozytorium.

# .gitignore — projekt Python/Node
node_modules/
__pycache__/
*.pyc
.env
.env.local
*.log
.DS_Store
dist/
.vscode/settings.json
Pro tip Użyj gitignore.io — wpisz technologię, dostaniesz gotowy plik. GitHub też proponuje .gitignore przy tworzeniu repo.
✓ COMMITUJ • kod źródłowy (.py, .js, .html) • package.json / requirements.txt • README, dokumentacja, testy ✗ IGNORUJ • node_modules/, venv/, __pycache__ • .env, klucze API, hasła • pliki IDE, logi, pliki build
Współpraca

Pull Request to rozmowa, nie formularz

PR to nie tylko mechanizm merge. To przestrzeń do code review, dyskusji i dokumentowania decyzji. Dobry PR ma tytuł, kontekst i opis co zmieniono i dlaczego.

branch + commity push origin open PR GitHub UI review komentarze MERGE do main ✓ Squash merge = czystsza historia | Rebase = liniowa historia
Szablon opisu PR ## Co zmieniono / ## Dlaczego / ## Jak testować / ## Screenshots — te sekcje wystarczą do dobrego review.
Podstawy

README to wizytówka projektu

Dobry README to pierwsze 30 sekund wrażenia. Powinien odpowiedzieć: co to jest, jak uruchomić, jak używać, jak kontrybować.

## Co to jest ## Instalacja ## Użycie ## API ## Contributing ## Licencja

Dodaj badges (build status, coverage, version) — są małe, a od razu sygnalizują dojrzałość projektu.

Współpraca

Issues to system ticketów — nie tylko dla bugów

GitHub Issues to nie tylko bugi. Używaj ich do feature requests, pytań, dyskusji. Połącz z Pull Requestem przez Closes #123 w opisie PR — automatycznie zamknie issue po merge.

📋 Issue #42 nowa funkcja 🌿 Branch feature/nowa-funkcja 🔀 Pull Request Closes #42 ✓ Merge → Zamknięte issue auto-close
Pro

GitHub Actions — automatyzuj wszystko

CI/CD bez wychodzenia z GitHub. Testy przy każdym push, deploy po merge do main, automatyczne powiadomienia — wszystko w plikach YAML w katalogu .github/workflows/.

# .github/workflows/ci.yml
name: CI Pipeline
on: [push, pull_request]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm test
Kiedy uruchamia się workflow? Na push, PR, schedule (cron), manualnie — możesz triggerować na wszystko. Marketplace ma tysiące gotowych actions.
Współpraca

Fork → Clone → PR — droga kontrybucji open source

Chcesz naprawić bug w cudzym projekcie? Fork tworzy kopię repo na Twoim koncie, pracujesz lokalnie, a Pull Request wysyłasz do oryginalnego repo. To podstawa open source.

🏛 original/repo upstream 🍴 ty/repo fork na GitHub 💻 local clone git clone fork Pull Request do original/repo fork clone push → PR
Pro

SSH Keys — uwierzytelniaj raz, push zawsze

Zamiast wpisywać hasło przy każdym push, skonfiguruj klucz SSH. Raz ustawiony — działa automatycznie. To też bezpieczniejsze niż hasło.

# 1. Wygeneruj klucz
ssh-keygen -t ed25519 -C "twoj@email.com"

# 2. Skopiuj klucz publiczny
cat ~/.ssh/id_ed25519.pub

# 3. Wklej w GitHub → Settings → SSH Keys

# 4. Testuj połączenie
ssh -T git@github.com
SSH (zalecane) Klucz raz → push bez hasła git@github.com:user/repo.git HTTPS (podstawowe) Token/hasło przy każdym push https://github.com/user/repo.git
▸ Ściągawka

Komendy Git dla początkujących

Kompletna ściągawka — skopiuj, wydrukuj, przyklej obok ekranu.

⚡ W każdej sesji — te trzy komendy wystarczą
git add . — dodaj wszystkie zmienione pliki do staging
git commit -m "opis co zrobione" — zapisz zmiany z opisem
git commit -a -m "wiadomość" — add + commit w jednym kroku (tylko śledzone pliki)
⚙ Konfiguracja
git --versionwersja Gita
git config --listcała konfiguracja
git config --global user.name "Jan"ustaw nazwę
git config --global user.email "j@x.pl"ustaw email
🌱 Inicjalizacja
git initnowe repo w bieżącym folderze
git clone URLpobierz istniejące repo
git clone URL folderpobierz do konkretnego folderu
🔍 Status i historia
git statusstan repozytorium
git log --onelinelista commitów w skrócie
git show HEADostatni commit
git show <hash>konkretny commit
git diff HEAD~1 HEADporównaj ostatnią zmianę
➕ Dodawanie zmian (staging)
git add nazwa_plikudodaj jeden plik
git add .dodaj wszystkie zmiany
git add *.jsdodaj pliki pasujące do wzorca
git reset HEAD plikcofnij z staging (nie zmienia pliku)
💾 Commit
git commit -m "opis"zapisz zmiany
git commit -a -m "opis"add + commit naraz
git commit --amendpopraw ostatni commit
📁 Praca z plikami
git mv stara nowazmiana nazwy / przeniesienie
git rm nazwa_plikuusuń plik i dodaj do staging
git rm --cached plikusuń z repo, zostaw lokalnie
git diffpodgląd niezapisanych zmian
🌿 Branche
git branchlista wszystkich branchy
git branch --show-currentaktualny branch
git checkout -b nazwanowy branch i przejdź na niego
git checkout mainprzejdź na branch main
git merge nazwascal branch z aktualnym
git branch -d nazwausuń branch (po merge)
☁ GitHub / Remote
git remote add origin URLpodepnij zdalne repo
git push -u origin mainwypchnij na GitHub (pierwszy raz)
git pushwypchnij kolejne commity
git pullpobierz zmiany ze zdalnego
git fetchpobierz info (bez merge)
git remote -vlista zdalnych repozytoriów
🖥 Nawigacja — PowerShell
cd folderwejdź do folderu
cd ..katalog wyżej
lslista plików i folderów
mkdir nazwanowy folder
New-Item plik.txtnowy plik
Rename-Item stara nowazmiana nazwy
rmdir -Recurse -Force folderusuń folder z zawartością
💡 Kliknij komendę, żeby skopiować do schowka