Git Cheat Sheet Polski

July 8, 2025 · View on GitHub

Git Logo

Szybki przewodnik referencyjny dla najczęściej używanych poleceń Git, zorganizowany w kategorie dla łatwego użycia.

📖 O tym przewodniku

Ten kompleksowy przewodnik referencyjny Git jest kompletnym zasobem dla każdego, kto chce usprawnić swój przepływ pracy z Git. Od początkujących, którzy rozpoczynają swoją przygodę z Git, po doświadczonych programistów, ten przewodnik zapewnia systematycznie zorganizowane polecenia kategoryzowane w celu przyspieszenia procesu rozwoju.

Kluczowe cechy:

  • Systematyczne kategorie: Polecenia zorganizowane w jasne, logiczne grupy
  • Praktyczne przykłady: Zawiera rzeczywiste przypadki użycia
  • Przyjazne dla początkujących: Jasne wyjaśnienia i wskazówki
  • Szybka referencja: Błyskawiczny dostęp do niezbędnych poleceń

📑 Spis treści


🔧 Konfiguracja początkowa

Skonfiguruj Git ze swoimi danymi osobowymi:

# Ustawienie nazwy użytkownika
git config --global user.name "Twoje Imię"

# Ustawienie adresu email
git config --global user.email "email@example.com"

# Wyświetlenie bieżącej konfiguracji
git config --list

# Ustawienie domyślnego edytora
git config --global core.editor "nano"

# Ustawienie narzędzia do scalania
git config --global merge.tool vimdiff

⚙️ Pliki konfiguracyjne

Git zarządza konfiguracją na kilku poziomach:

Plik konfiguracji globalnej

# Ścieżka do globalnego pliku konfiguracji
~/.gitconfig

# Edycja globalnej konfiguracji
git config --global --edit

Plik konfiguracji repozytorium

# Ścieżka do pliku konfiguracji repozytorium
.git/config

# Edycja konfiguracji repozytorium
git config --edit

Konfiguracja systemowa

# Plik konfiguracji systemowej (wymaga uprawnień administratora)
/etc/gitconfig

# Edycja konfiguracji systemowej
git config --system --edit

Przydatne ustawienia konfiguracji

# Włączenie kolorowego wyjścia
git config --global color.ui true

# Ustawienie domyślnej nazwy gałęzi
git config --global init.defaultBranch main

# Obsługa końców linii (macOS/Linux)
git config --global core.autocrlf input

# Obsługa końców linii (Windows)
git config --global core.autocrlf true

📁 Konfiguracja repozytorium

Tworzenie nowego repozytorium:

# Utworzenie nowego repozytorium Git
git init

# Klonowanie istniejącego repozytorium
git clone <url-repozytorium>

# Klonowanie do określonego katalogu
git clone <url-repozytorium> <nazwa-katalogu>

📊 Polecenia statusu

Sprawdzanie statusu repozytorium:

# Wyświetlenie bieżącego statusu repozytorium
git status

# Wyświetlenie statusu w krótkim formacie
git status -s

# Wyświetlenie statusu ignorując nieśledzone pliki
git status --ignored

# Wyświetlenie różnic w zmodyfikowanych plikach
git diff

# Wyświetlenie różnic w obszarze staging
git diff --staged

# Wyświetlenie różnic między gałęziami
git diff <gałąź1> <gałąź2>

📝 Zarządzanie plikami

Dodawanie i usuwanie plików:

# Dodanie określonego pliku do obszaru staging
git add <plik>

# Dodanie wszystkich zmodyfikowanych plików
git add .

# Dodanie wszystkich plików określonego typu
git add *.txt

# Interaktywne dodawanie
git add -i

# Usunięcie pliku z repozytorium i katalogu roboczego
git rm <plik>

# Usunięcie pliku tylko z repozytorium (zachowanie w katalogu)
git rm --cached <plik>

# Przenoszenie/zmiana nazwy pliku
git mv <plik-źródłowy> <plik-docelowy>

💾 Commity

Zapisywanie zmian w repozytorium:

# Commit z wiadomością
git commit -m "Wiadomość commita"

# Commit dodając wszystkie zmodyfikowane pliki
git commit -am "Wiadomość commita"

# Modyfikacja ostatniego commita
git commit --amend

# Pusty commit (przydatny dla wyzwalaczy CI/CD)
git commit --allow-empty -m "Wyzwalacz CI"

# Commit ze szczegółową wiadomością (otwiera edytor)
git commit

🌿 Gałęzie (Branches)

Praca z gałęziami:

# Wyświetlenie wszystkich gałęzi
git branch

# Wyświetlenie zdalnych gałęzi
git branch -r

# Wyświetlenie wszystkich gałęzi (lokalnych i zdalnych)
git branch -a

# Utworzenie nowej gałęzi
git branch <nazwa-gałęzi>

# Przełączenie na gałąź
git checkout <nazwa-gałęzi>

# Utworzenie i przełączenie na nową gałąź
git checkout -b <nazwa-gałęzi>

# Utworzenie gałęzi z określonego commita
git checkout -b <nazwa-gałęzi> <hash-commita>

# Usunięcie gałęzi
git branch -d <nazwa-gałęzi>

# Wymuszone usunięcie gałęzi
git branch -D <nazwa-gałęzi>

# Zmiana nazwy bieżącej gałęzi
git branch -m <nowa-nazwa>

# Zmiana nazwy określonej gałęzi
git branch -m <stara-nazwa> <nowa-nazwa>

🔀 Scalanie (Merge)

Scalanie zmian między gałęziami:

# Scalenie gałęzi z bieżącą gałęzią
git merge <nazwa-gałęzi>

# Scalenie bez fast-forward (utworzenie commita scalenia)
git merge --no-ff <nazwa-gałęzi>

# Scalenie tylko jeśli jest fast-forward
git merge --ff-only <nazwa-gałęzi>

# Anulowanie trwającego scalenia
git merge --abort

# Kontynuacja scalenia po rozwiązaniu konfliktów
git merge --continue

🌐 Zdalne repozytoria

Zarządzanie zdalnymi repozytoriami:

# Wyświetlenie zdalnych repozytoriów
git remote

# Wyświetlenie zdalnych repozytoriów z URL-ami
git remote -v

# Dodanie zdalnego repozytorium
git remote add <nazwa> <url>

# Zmiana URL zdalnego repozytorium
git remote set-url <nazwa> <nowy-url>

# Usunięcie zdalnego repozytorium
git remote remove <nazwa>

# Wysłanie zmian do zdalnego repozytorium
git push <zdalne> <gałąź>

# Wysłanie gałęzi i ustawienie śledzenia
git push -u <zdalne> <gałąź>

# Wysłanie wszystkich gałęzi
git push --all

# Wysłanie tagów
git push --tags

# Pobranie zmian ze zdalnego repozytorium
git pull <zdalne> <gałąź>

# Pobranie zmian bez scalania
git fetch <zdalne>

# Pobranie wszystkich zdalnych gałęzi
git fetch --all

📚 Historia i logi

Eksploracja historii commitów:

# Wyświetlenie historii commitów
git log

# Wyświetlenie historii w jednej linii na commit
git log --oneline

# Wyświetlenie historii z wykresem
git log --graph

# Wyświetlenie historii określonego pliku
git log <plik>

# Wyświetlenie statystyk commitów
git log --stat

# Wyświetlenie zmian w każdym commicie
git log -p

# Wyświetlenie ostatnich N commitów
git log -n <liczba>

# Wyświetlenie commitów między datami
git log --since="2023-01-01" --until="2023-12-31"

# Wyświetlenie commitów według autora
git log --author="Imię Autora"

# Wyszukiwanie w wiadomościach commitów
git log --grep="słowo kluczowe"

🔍 Wyszukiwanie

Wyszukiwanie w zawartości i historii:

# Wyszukiwanie tekstu w plikach śledzonych
git grep "tekst do wyszukania"

# Wyszukiwanie z ignorowaniem wielkości liter
git grep -i "tekst"

# Wyszukiwanie całych słów
git grep -w "słowo"

# Wyświetlenie numerów linii
git grep -n "tekst"

# Wyświetlenie tylko nazw plików
git grep -l "tekst"

# Wyszukiwanie w określonych plikach
git grep "tekst" -- "*.js"

# Wyszukiwanie w historii commitów
git log -S "tekst" --source --all

# Wyszukiwanie dodań/usunięć w historii
git log -G "regex_pattern" --patch

# Wyszukiwanie według nazwy pliku
git log --all --full-history -- "**/nazwa_pliku.*"

# Wyszukiwanie w określonym commicie
git grep "tekst" <hash-commita>

🏷️ Tagi

Zarządzanie tagami wersji:

# Wyświetlenie wszystkich tagów
git tag

# Utworzenie lekkiego tagu
git tag <nazwa-tagu>

# Utworzenie adnotowanego tagu
git tag -a <nazwa-tagu> -m "Wiadomość tagu"

# Utworzenie tagu na określonym commicie
git tag -a <nazwa-tagu> <hash-commita>

# Wyświetlenie informacji o tagu
git show <nazwa-tagu>

# Usunięcie lokalnego tagu
git tag -d <nazwa-tagu>

# Usunięcie zdalnego tagu
git push --delete <zdalne> <nazwa-tagu>

# Wysłanie określonego tagu
git push <zdalne> <nazwa-tagu>

# Wysłanie wszystkich tagów
git push <zdalne> --tags

📁 Przenoszenie/Zmiana nazwy

Zarządzanie plikami i katalogami:

# Przenoszenie/zmiana nazwy pliku
git mv <stary-plik> <nowy-plik>

# Zmiana nazwy katalogu
git mv <stary-katalog> <nowy-katalog>

# Przenoszenie wielu plików do katalogu
git mv plik1.txt plik2.txt katalog/

# Zmiana wielkości liter (systemy plików wrażliwe na wielkość liter)
git mv nazwapliku.txt temp.txt
git mv temp.txt NazwaPliku.txt

# Śledzenie historii przeniesionego pliku
git log --follow <plik>

# Śledzenie przeniesionych plików
git log --stat -M

# Ustawienie progu wykrywania zmian nazwy
git log --follow -M90% <plik>

↩️ Cofanie zmian

Przywracanie modyfikacji:

# Anulowanie zmian w określonym pliku
git checkout <plik>

# Anulowanie wszystkich niezacommitowanych zmian
git checkout .

# Przywrócenie pliku do określonej wersji
git checkout <hash-commita> <plik>

# Usunięcie pliku z obszaru staging
git reset <plik>

# Usunięcie wszystkich plików z obszaru staging
git reset

# Powrót do poprzedniego commita (zachowanie zmian)
git reset --soft HEAD~1

# Powrót do poprzedniego commita (anulowanie zmian)
git reset --hard HEAD~1

# Powrót do określonego commita
git reset --hard <hash-commita>

# Utworzenie commita anulującego inny commit
git revert <hash-commita>

# Anulowanie wielu commitów
git revert <hash-od>..<hash-do>

📦 Schowek (Stash)

Tymczasowe zapisywanie pracy:

# Zapisanie bieżących zmian w schowku
git stash

# Zapisanie z opisową wiadomością
git stash save "Opisowa wiadomość"

# Wyświetlenie wszystkich schowków
git stash list

# Zastosowanie ostatniego schowka
git stash apply

# Zastosowanie określonego schowka
git stash apply stash@{0}

# Zastosowanie i usunięcie ostatniego schowka
git stash pop

# Usunięcie określonego schowka
git stash drop stash@{0}

# Usunięcie wszystkich schowków
git stash clear

# Wyświetlenie zmian w schowku
git stash show stash@{0}

# Utworzenie gałęzi ze schowka
git stash branch <nazwa-gałęzi> stash@{0}

🌊 Git Flow

Git Flow to model rozgałęziania, który definiuje ścisły przepływ pracy zaprojektowany wokół wydania projektu.

Główne gałęzie:

  • master/main: Kod produkcyjny
  • develop: Główna gałąź rozwoju

Gałęzie wsparcia:

  • feature: Dla nowych funkcji
  • release: Dla przygotowania nowych wersji
  • hotfix: Dla pilnych poprawek w produkcji

Polecenia Git Flow:

# Inicjalizacja git flow
git flow init

# Rozpoczęcie nowej funkcji
git flow feature start <nazwa-funkcji>

# Zakończenie funkcji
git flow feature finish <nazwa-funkcji>

# Publikowanie funkcji
git flow feature publish <nazwa-funkcji>

# Rozpoczęcie wydania
git flow release start <wersja>

# Zakończenie wydania
git flow release finish <wersja>

# Rozpoczęcie hotfixa
git flow hotfix start <wersja>

# Zakończenie hotfixa
git flow hotfix finish <wersja>

Przepływ pracy bez Git Flow:

Git Flow Commands

# Utworzenie gałęzi funkcji
git checkout develop
git checkout -b feature/nowa-funkcja

# Praca nad funkcją
git add .
git commit -m "Dodanie nowej funkcji"

# Scalenie funkcji z develop
git checkout develop
git merge --no-ff feature/nowa-funkcja
git branch -d feature/nowa-funkcja

# Utworzenie gałęzi wydania
git checkout develop
git checkout -b release/1.0.0

# Zakończenie wydania
git checkout master
git merge --no-ff release/1.0.0
git tag -a 1.0.0 -m "Wersja 1.0.0"
git checkout develop
git merge --no-ff release/1.0.0
git branch -d release/1.0.0

💡 Przydatne wskazówki

Przydatne aliasy:

# Ustawienie przydatnych aliasów
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.unstage 'reset HEAD --'
git config --global alias.last 'log -1 HEAD'
git config --global alias.visual '!gitk'

Pliki .gitignore:

# Utworzenie pliku .gitignore
echo "node_modules/" >> .gitignore
echo "*.log" >> .gitignore
echo ".env" >> .gitignore

# Ignorowanie już śledzonych plików
git rm --cached <plik>
echo "<plik>" >> .gitignore
git add .gitignore
git commit -m "Dodanie pliku do .gitignore"

📚 Dodatkowe zasoby

Oficjalna dokumentacja i przewodniki

Materiały do nauki online

Narzędzia GUI

Zaawansowane tematy


🌍 Inne języki

Ten Git Cheat Sheet jest dostępny w następujących językach:


🤝 Współpraca

Zachęcamy do współpracy! Aby pomóc w ulepszaniu tego projektu:

  1. Zgłaszaj problemy: Dziel się błędami lub sugestiami ulepszeń
  2. Dodawaj nowe języki: Twórz tłumaczenia lub ulepszaj istniejące
  3. Ulepszaj treść: Dodawaj nowe polecenia, przykłady lub wyjaśnienia
  4. Przekazuj opinie: Dziel się swoimi doświadczeniami i sugestiami

Jak współpracować:


📄 Licencja

Ten projekt jest licencjonowany na licencji MIT. Zobacz plik LICENSE po więcej szczegółów.


⭐ Jeśli ten cheat sheet jest pomocny, zostaw gwiazdkę!
Miłego kodowania z Git! 🚀