Ściąga Git
Przeszukiwalny, gotowy do druku przewodnik po Git — konfiguracja, gałęzie, scalanie, rebasowanie, zdalne repozytoria, stash, tagi i cofanie zmian. Za darmo.
Konfiguracja i ustawienia
10git config --global user.name "Jane Doe"
Ustaw nazwę dołączaną do commitów
git config --global user.email "jane@example.com"
Ustaw e-mail dołączany do commitów
git config --global init.defaultBranch main
Nowe repozytoria zaczynają od gałęzi "main"
git config --global core.editor "code --wait"
Użyj VS Code jako domyślnego edytora Git
git config --global pull.rebase true
Rebase zamiast scalania przy pull
git config --global alias.co checkout
Utwórz alias skrótu (git co)
git config --global --list
Wypisz wszystkie globalne wartości konfiguracji
git config user.email
Wyświetl e-mail dla bieżącego repozytorium
git config --global color.ui auto
Włącz kolorowy wynik wiersza poleceń
git help <command>
Otwórz stronę podręcznika polecenia
Tworzenie i klonowanie repozytoriów
9git init
Zainicjuj nowe repozytorium w bieżącym folderze
git init my-project
Utwórz nowe repozytorium w nowym katalogu
git clone https://example.com/repo.git
Sklonuj zdalne repozytorium przez HTTPS
git clone git@example.com:user/repo.git
Sklonuj zdalne repozytorium przez SSH
git clone <url> my-dir
Sklonuj do podanej nazwy katalogu
git clone --depth 1 <url>
Płytkie klonowanie tylko z ostatnim commitem
git clone --branch dev <url>
Sklonuj i przełącz na wybraną gałąź
git clone --recurse-submodules <url>
Sklonuj i zainicjuj wszystkie submoduły
git remote add origin <url>
Dołącz zdalne repo do istniejącego lokalnego
Dodawanie do indeksu i commitowanie
11git add file.txt
Dodaj pojedynczy plik do następnego commita
git add .
Dodaj wszystkie zmiany w bieżącym katalogu
git add -A
Dodaj wszystkie zmiany, łącznie z usunięciami
git add -p
Interaktywnie dodawaj wybrane fragmenty
git commit -m "Add login form"
Commituj dodane zmiany z komunikatem
git commit -am "Fix typo"
Dodaj śledzone pliki i commituj w jednym kroku
git commit --amend
Edytuj najnowszy commit
git commit --amend --no-edit
Dodaj zmiany z indeksu do ostatniego commita
git rm file.txt
Usuń plik i dodaj usunięcie do indeksu
git mv old.txt new.txt
Zmień nazwę lub przenieś plik i dodaj do indeksu
git reset file.txt
Usuń plik z indeksu, zachowując zmiany
Gałęzie
10git branch
Wypisz wszystkie gałęzie lokalne
git branch -a
Wypisz gałęzie lokalne i śledzące zdalne
git switch -c feature/login
Utwórz nową gałąź i przełącz się na nią
git switch main
Przełącz na istniejącą gałąź
git checkout -b hotfix
Klasyczny sposób tworzenia i przełączania gałęzi
git branch -m old-name new-name
Zmień nazwę gałęzi
git branch -d feature/login
Usuń scaloną gałąź lokalną
git branch -D feature/login
Wymuś usunięcie niescalonej gałęzi lokalnej
git push origin --delete feature/login
Usuń gałąź w zdalnym repozytorium
git switch -
Wróć do poprzedniej gałęzi
Scalanie i rebase
10git merge feature/login
Scal gałąź z bieżącą
git merge --no-ff feature/login
Scal, zawsze tworząc commit scalający
git merge --squash feature/login
Połącz gałąź w jedną zmianę w indeksie
git merge --abort
Anuluj scalanie z konfliktami
git rebase main
Odtwórz commity bieżącej gałęzi na main
git rebase -i HEAD~3
Interaktywnie edytuj ostatnie 3 commity
git rebase --continue
Wznów rebase po rozwiązaniu konfliktów
git rebase --abort
Anuluj trwający rebase
git cherry-pick <hash>
Zastosuj pojedynczy commit na bieżącej gałęzi
git mergetool
Uruchom narzędzie do rozwiązywania konfliktów
Zdalne repozytoria i synchronizacja
11git remote -v
Wypisz skonfigurowane zdalne repo i ich URL-e
git remote add upstream <url>
Dodaj drugie zdalne repo o nazwie upstream
git remote set-url origin <url>
Zmień URL istniejącego zdalnego repo
git fetch
Pobierz zdalne zmiany bez scalania
git fetch --all --prune
Pobierz wszystkie repo i usuń nieaktualne gałęzie
git pull
Pobierz i zintegruj zdalne zmiany
git pull --rebase
Pull i rebase lokalnych commitów na wierzch
git push
Wyślij lokalne commity do zdalnego repo
git push -u origin main
Push i ustaw gałąź śledzącą upstream
git push --force-with-lease
Bezpieczny force-push bez nadpisywania innych
git push origin --tags
Wyślij wszystkie lokalne tagi do zdalnego repo
Przeglądanie i porównywanie
10git status
Pokaż pliki w indeksie, poza nim i nieśledzone
git status -s
Pokaż status w zwięzłym, krótkim formacie
git diff
Pokaż zmiany poza indeksem względem indeksu
git diff --staged
Pokaż zmiany dodane do następnego commita
git diff main..feature
Porównaj dwie gałęzie
git diff HEAD~1 HEAD
Porównaj ostatni commit z jego rodzicem
git show <hash>
Pokaż szczegóły i diff jednego commita
git show HEAD:file.txt
Pokaż plik w stanie z danego commita
git log --stat
Pokaż commity z podsumowaniem zmienionych plików
git shortlog -sn
Zlicz commity pogrupowane wg autora
Cofanie zmian
10git restore file.txt
Odrzuć niezindeksowane zmiany w pliku
git restore --staged file.txt
Usuń plik z indeksu, zachowując zmiany
git restore --source=HEAD~1 file.txt
Przywróć plik z wcześniejszego commita
git checkout -- file.txt
Klasyczny sposób odrzucenia lokalnych zmian
git reset --soft HEAD~1
Cofnij ostatni commit, zmiany w indeksie
git reset --mixed HEAD~1
Cofnij ostatni commit, zmiany poza indeksem
git reset --hard HEAD~1
Cofnij ostatni commit i odrzuć zmiany
git revert <hash>
Utwórz commit cofający inny commit
git clean -fd
Usuń nieśledzone pliki i katalogi
git clean -nd
Podejrzyj, co usunie clean
Schowek (stash)
10git stash
Zapisz niezatwierdzone zmiany i wyczyść drzewo
git stash push -m "wip"
Schowaj zmiany z opisowym komunikatem
git stash -u
Schowaj wraz z nieśledzonymi plikami
git stash list
Wypisz wszystkie zestawy zmian w schowku
git stash show -p
Pokaż diff najnowszego schowka
git stash apply
Zastosuj ponownie najnowszy schowek i zachowaj go
git stash pop
Zastosuj ponownie najnowszy schowek i usuń go
git stash apply stash@{2}
Zastosuj ponownie konkretny schowek wg indeksu
git stash drop stash@{0}
Usuń pojedynczy wpis ze schowka
git stash clear
Usuń wszystkie wpisy ze schowka
Tagi
9git tag
Wypisz wszystkie tagi
git tag v1.0.0
Utwórz lekki tag na HEAD
git tag -a v1.0.0 -m "Release 1.0.0"
Utwórz tag z adnotacją i komunikatem
git tag -a v1.0.0 <hash>
Otaguj konkretny wcześniejszy commit
git show v1.0.0
Pokaż szczegóły taga
git push origin v1.0.0
Wyślij pojedynczy tag do zdalnego repo
git push origin --tags
Wyślij wszystkie lokalne tagi do zdalnego repo
git tag -d v1.0.0
Usuń tag lokalnie
git push origin --delete v1.0.0
Usuń tag w zdalnym repozytorium
Logi i historia
12git log
Pokaż pełną historię commitów
git log --oneline
Pokaż zwięzły log, jedna linia na commit
git log --oneline --graph --all
Wizualizuj gałęzie jako graf ASCII
git log -p
Pokaż historię commitów z diffami
git log --author="Jane"
Filtruj historię wg autora
git log --since="2 weeks ago"
Filtruj historię wg zakresu dat
git log --pretty=format:"%h %an %s"
Dostosuj format wyjścia logu
git blame file.txt
Pokaż, kto ostatnio zmienił każdą linię
git reflog
Pokaż historię położeń HEAD
git bisect start
Rozpocznij binarne szukanie błędnego commita
git bisect good <hash>
Oznacz commit jako dobry podczas bisect
git bisect bad
Oznacz bieżący commit jako błędny
Żaden wpis nie pasuje do „:q”.
Potrzebujesz pomocy?
Masz problem z tym narzędziem? Daj nam znać.