Instalacja i konfiguracja ⤢ git configUstawia Twoje imię i nazwisko, e-mail lub edytor raz dla wszystkich repozytoriów. git config --global user.name "Ada" ⤢ git config --global aliasDefiniuje skróconą nazwę dla polecenia, które wpisujesz często. git config --global alias.co checkout ⤢ git initTworzy nowe repozytorium w bieżącym folderze. git init ⤢ git cloneKopiuje zdalne repozytorium na Twój komputer. git clone git@github.com:org/repo.git ⤢ git clone --depthKopiuje tylko najnowsze commity jednej gałęzi. git clone --depth 1 --single-branch git@github.com:org/repo.git Podstawy migawek ⤢ git statusPokazuje, co jest w indeksie, zmodyfikowane i nieśledzone. git status -sb ⤢ git addDodaje zmiany do indeksu, aby trafiły do następnego commita. git add src/app.ts ⤢ git add -pPrzegląda zmiany fragment po fragmencie i dodaje tylko te, które akceptujesz. git add -p src/app.ts ⤢ git add -uDodaje zmiany wszystkich śledzonych plików, bez dodawania nowych. git add -u ⤢ git commitZapisuje zmiany z indeksu jako nowy commit. git commit -m "fix: null check" ⤢ git commit --amendZastępuje ostatni commit poprawioną wersją. git commit --amend -m "fix: handle empty input" ⤢ git diffPokazuje zmiany niedodane do indeksu, a z opcją --staged te dodane. git diff --staged ⤢ git diff HEADPokazuje wszystkie zmiany od ostatniego commita, dodane do indeksu lub nie. git diff HEAD Gałęzie i scalanie ⤢ git branchListuje, tworzy lub usuwa gałęzie. git branch feature-x ⤢ git branch -dUsuwa scaloną gałąź (-D wymusza usunięcie, -a listuje wszystkie gałęzie). git branch -d feature-x ⤢ git switchPrzełącza gałęzie (nowoczesny zamiennik checkout). git switch feature-x ⤢ git switch -cTworzy nową gałąź i od razu na nią przełącza. git switch -c feature-x ⤢ git checkoutPrzełącza gałęzie lub przywraca pliki (starsze, szersze polecenie). git checkout feature-x ⤢ git mergeWprowadza zmiany innej gałęzi do bieżącej gałęzi. git merge feature-x ⤢ git merge --abortAnuluje konfliktowe scalenie i przywraca gałąź do stanu poprzedniego. git merge --abort ⤢ git rebasePonownie stosuje commity bieżącej gałęzi na szczycie innej gałęzi. git rebase main ⤢ git rebase -iScala, porządkuje lub edytuje commity podczas ich ponownego stosowania. git rebase -i main ⤢ git cherry-pickKopiuje pojedynczy commit z innej gałęzi do bieżącej. git cherry-pick a1b2c3d ⤢ git tagOznacza commit czytelną etykietą, na przykład wersją. git tag -a v1.2.0 ⤢ git worktreeWydaje inną gałąź w osobnym folderze w tym samym czasie. git worktree add ../repo-feature feature-x Przeglądanie historii ⤢ git logPrzegląda historię commitów. git log --oneline --graph --decorate ⤢ git log --allPrzegląda historię wszystkich gałęzi, nie tylko bieżącej. git log --oneline --graph --all ⤢ git showPokazuje pełny diff i komunikat jednego commita. git show HEAD ⤢ git blamePokazuje, kto ostatnio zmienił każdą linię pliku. git blame src/app.ts ⤢ git reflogPokazuje każdy commit, na który wskazywał HEAD, w tym odrzucone. git reflog ⤢ git bisectPrzeszukuje historię połowami, aby znaleźć commit, który coś zepsuł. git bisect start ⤢ git shortlogPodsumowuje commity według autorów. git shortlog -sn ⤢ git describeNazywa bieżący commit, licząc od najbliższego taga. git describe --tags Praca ze zdalnym repozytorium ⤢ git remoteListuje lub dodaje zdalne repozytoria. git remote add origin <url> ⤢ git remote -vListuje zdalne repozytoria wraz z adresami fetch i push. git remote -v ⤢ git fetchPobiera zdalne zmiany bez zmieniania Twoich gałęzi. git fetch origin ⤢ git fetch --prunePobiera zdalne zmiany i usuwa refere usuniętych gałęzi zdalnych. git fetch --prune ⤢ git pullPobiera i scala zdalne zmiany bieżącej gałęzi. git pull --rebase ⤢ git pushWysyła lokalne commity do zdalnego repozytorium. git push -u origin feature-x ⤢ git push --force-with-leaseNadpisuje zdalną gałąź, ale tylko jeśli nikt wcześniej nie wypchnął zmian. git push --force-with-lease origin feature-x Cofanie zmian ⤢ git restoreOdrzuca zmiany w drzewie roboczym lub usuwa je z indeksu. git restore src/app.ts ⤢ git restore --stagedUsuwa plik z indeksu, zachowując jego edycje w drzewie roboczym. git restore --staged src/app.ts ⤢ git resetPrzesuwa czubek bieżącej gałęzi i opcjonalnie indeks. git reset --hard HEAD~1 ⤢ git revertDodaje nowy commit, który cofa wcześniejszy (bezpieczny do udostępnienia). git revert HEAD ⤢ git cleanUsuwa nieśledzone pliki i foldery. git clean -fd Schowek (stash) ⤢ git stashZapisuje niezacommitowaną pracę i resetuje drzewo robocze. git stash -u ⤢ git stash listPokazuje wszystkie zapisane schowki. git stash list ⤢ git stash applyPonownie stosuje schowek i zachowuje go na liście. git stash apply stash@{1} ⤢ git stash dropUsuwa schowek, którego już nie potrzebujesz. git stash drop stash@{1} ⤢ git stash popPonownie stosuje najnowszy schowek i usuwa go z listy. git stash pop Pliki i submodule ⤢ git mvPrzenosi plik lub zmienia jego nazwę i dodaje zmianę do indeksu. git mv old.ts src/new.ts ⤢ git rmUsuwa plik i dodaje usunięcie do indeksu. git rm src/old.ts ⤢ git submoduleŚledzi inne repozytorium jako folder wewnątrz tego repozytorium. git submodule add git@github.com:org/lib.git lib ⤢ git sparse-checkoutWydaje tylko nazwane foldery z dużego repozytorium. git sparse-checkout set src docs ⤢ git archiveEksportuje drzewo commita jako plik tar lub zip. git archive -o repo.zip HEAD