Polecenia Git Cheat Sheet
Git to otwarty, rozproszony system kontroli wersji, który pozwala na sprawne i szybkie zarządzanie wersjami projektów — od bardzo małych do bardzo dużych. Git został stworzony przez Linusa Torvaldsa, aby wspomóc rozwój jądra systemu Linux.
Podstawy Git
git init <directory>Tworzy puste repozytorium Git w określonym katalogu. Jeśli polecenie zostanie wywołane bez parametrów, zainicjuje bieżący katalog jako repozytorium Git.
git clone <repo>Klonuje repozytorium znajdujące się pod adresem <repo> na lokalną maszynę. Repozytorium źródłowe może znajdować się w lokalnym systemie plików lub na zdalnej maszynie poprzez protokół HTTP lub SSH.
git config user.name <name>Definiuje nazwę autora, która będzie przypisana do wszystkich commitów w bieżącym repozytorium.
git add <directory>Dodaje zmiany w <directory> do następnego commita.
git commit -m "<message>"Zatwierdza migawkę zmian (staged snapshot), używając <message> jako wiadomości commita.
git statusWyświetla listę plików oczekujących na zatwierdzenie (staged), nieprzygotowanych (unstaged) oraz nieśledzonych (untracked).
git logWyświetla całą historię commitów w formacie domyślnym.
git diffPorównuje różnice między katalogiem roboczym (zmiany jeszcze nie dodane poleceniem git add) a poczekalnią (po git add).
Cofanie zmian
git revert <commit>Tworzy nowy commit, który odwraca wszystkie zmiany wprowadzone w <commit>, i stosuje go do bieżącej gałęzi.
git reset <file>Usuwa <file> z poczekalni (staging area), ale pozostawia katalog roboczy bez zmian. To polecenie cofa stan przygotowania pliku bez nadpisywania jakichkolwiek zmian.
git clean -nWyświetla pliki, które zostaną usunięte z katalogu roboczego. Użyj flagi -f zamiast -n, aby faktycznie wykonać czyszczenie.
Przebudowa historii
git commit --amendModyfikuje ostatni commit. Jeśli w katalogu roboczym znajdują się zmiany gotowe do zatwierdzenia, zostaną one dołączone do ostatniego commita po użyciu polecenia git commit –amend.
git rebase <base>Przebudowuje bieżącą gałąź na podstawie <base>. <base> może być identyfikatorem commita, nazwą gałęzi, tagiem lub HEAD.
git reflogUmożliwia przeglądanie historii wszystkich operacji na wszystkich gałęziach (włączając w to usunięte commity oraz operacje resetowania).
Gałęzie Git
git branchWyświetla listę wszystkich gałęzi. Dodaj parametr <branch>, aby stworzyć nową gałąź o nazwie <branch>.
git checkout -b <branch>Tworzy i przełącza się na nową gałąź o nazwie <branch>. Pomiń flagę -b, aby przełączyć się na istniejącą gałąź.
git merge <branch>Scala gałąź <branch> z bieżącą gałęzią.
Zdalne repozytoria
git remote add <name> <url>Dodaje nowe zdalne repozytorium. Po dodaniu, możesz używać nazwy <name> jako skrótu do adresu <url> w innych poleceniach.
git fetch <remote> <branch>Pobiera wszystkie aktualizacje dla określonej <branch> z repozytorium, ale nie scala ich z gałęzią lokalną.
git pull <remote>Pobiera określoną zdalną kopię bieżącej gałęzi i natychmiast scala ją z kopią lokalną.
git push <remote> <branch>Wysyła gałąź do <remote> wraz z niezbędnymi commitami i obiektami. Jeśli zdalne repozytorium nie posiada takiej gałęzi, zostanie ona tam utworzona.
git config
git config --global user.name <name>Definiuje nazwę autora dla wszystkich commitów bieżącego użytkownika.
git config --global user.email <email>Definiuje adres e-mail autora dla wszystkich commitów bieżącego użytkownika.
git config --global alias.<alias-name> <git-command>Tworzy skrót (alias) dla polecenia Git.
git config --system core.editor <editor>Ustawia edytor tekstowy używany przez polecenia dla wszystkich użytkowników komputera.
git config --global --editOtwiera globalny plik konfiguracyjny w edytorze tekstowym w celu ręcznej edycji.
git log
git log -<limit>Wyświetla <limit> ostatnich wpisów w historii commitów.
git log --onelineWyświetla historię commitów, kompresując każdy wpis do jednej linii.
git log -pWyświetla historię commitów wraz z pełnymi zmianami (diff) dla każdego z nich.
git log --statWyświetla historię commitów, zawierającą informacje o zmodyfikowanych plikach oraz względnej liczbie dodanych lub usuniętych linii w każdym z nich.
git log --author="<pattern>"Wyszukuje commity konkretnego autora.
git log --grep="<pattern>"Wyszukuje w historii commitów, używając dopasowania wyrażeń regularnych.
git log <since>..<until>Wyświetla commity, które powstały pomiędzy <since> a <until>.
git log -- <file>Wyświetla tylko te commity, które zawierają określony plik.
git diff
git diff HEADPorównuje różnice między katalogiem roboczym (zmiany jeszcze nie dodane) a repozytorium (po git commit).
git diff --cachedPorównuje różnice między poczekalnią (po git add) a repozytorium (po git commit).
git reset
git resetResetuje poczekalnię tak, aby odpowiadała ostatniemu commitowi, ale pozostawia katalog roboczy bez zmian.
git reset --hardResetuje zarówno poczekalnię, jak i katalog roboczy do stanu z ostatniego commita, nadpisując wszystkie zmiany w katalogu roboczym.
git reset <commit>Cofa wskaźnik bieżącej gałęzi do <commit> i resetuje poczekalnię, ale nie zmienia katalogu roboczego.
git reset --hard <commit>Działa tak jak powyżej, ale resetuje zarówno poczekalnię, jak i katalog roboczy. Usuwa niezatwierdzone zmiany oraz wszystkie commity po <commit>.
git pull
git pull --rebase <remote>Pobiera zdalną kopię bieżącej gałęzi i przebudowuje ją na podstawie kopii lokalnej. Używa git rebase zamiast merge do integracji gałęzi.
git push
git push <remote> --forceWymusza wysłanie zmian (Force push).
git push <remote> --allWysyła wszystkie lokalne gałęzie do określonego zdalnego repozytorium.
git push <remote> --tagsWysyła wszystkie lokalne tagi do zdalnego repozytorium.