Mały cheat sheet z komendami GITa. Trochę tego się nazbierało, dlatego najlepszym wyjściem będzie Ctrl + F. Wszystkie komendy gita są szczegółowo opisane na stronie dokumentacji git-scm.com/docs.
Natomiast samego GITa można pobrać stąd: git-scm.com/downloads
Konfiguracja
Lista wszystkich opcji konfiguracyjnych
git config -l
Ustalenie opcji
git config --global user.name "Imie Nazwisko"
git config --global user.email mail@cos.pl
Ustalenie opcji dla projektu
git config user.name "Imie Nazwisko"
git config user.email mail@cos.pl
Globalne ustawienia gita są w pliku:
C:\Users\nazwa-usera\.gitconfig
Plik konfiguracyjny danego repozytorium
.git\config
Inicjalizacja repozytorium
git init
Klonowanie repo
git clone adres-repo [sciezka/docelowa/opcjonalnie]
Informacje o repo
Uczestnicy projektu
git shortlog -s -n
Historia
git log
git log --pretty=oneline
git log --oneline
Zminimalizowane indetyfikatory
git log --abbrev-commit --abbrev=4 --pretty=oneline
3 Ostatnie rewizje
git log -3
Historia użytkownika
git log --author=buszmen
Historia zawierająca commity z przedziału czasu
git log--since="2016-06-07" --until="2017-01-15"
Lista ostatnich 15 rewizji w skróconym formacie graficznym
git log --pretty=oneline --abbrev-commit --abbrev=4 -15 --graph
Przywracanie obszaru roboczego
(Nie usuwa nowych plików)
git reset --hard
git checkout -f
Powrócenie do określonego commita (późniejsze commity zostają usunięte z historii projektu!)
git reset --hard [SHA-1]
Powrócenie do określonego commita (repo znajduje się w stanie detached head)
git checkout -f [SHA-1]
Stan repo
git status
git status -s
Tworzenie commita
git add -A
git commit -m "ble ble ble..."
Automatyczna indeksacja plików zmodyfikowanch lub usuniętych
git commit -a
Branche (gałęzie)
Sprawdzenie brancha
git branch
Przejście na wybranego brancha
git checkout [nazwa-brancha]
git checkout develop
Stan plików
Indeksacja pliku
git add [nazwa-pliku]
Indeksacja wszystkich plików
git add --all
git add -A
Indeksacja plików zmodyfikowanych i usuniętych
git add --updated
git add -u
Usunięcie pliku
git rm [nazwa-pliku]
Zmiana nazwy
git mv stara-nazwa nowa-nazwa
Ignorowanie plików
Lista plików do ignorowania znajduje się w pliku .gitignore
/folder
folder
*.exe
plik.txt
Znaczniki
Znacznik opisany do ostatniego commita
git tag -a NAZWA -m KOMENTARZ [SHA-1, by stworzyc do danego commita]
Znacznik lekki do ostatniej rewizji
git tag NAZWA [SHA-1 opcjonaln]
Lista znaczników opisanych
git describe
Lista wszystkich znaczników
git describe --tags
Dziennik reflog
git reflog [branch]
Modyfikacja historii projektu
Usuwanie ostatnich commitów do X
git reset --hard SHA
Edycja ostatniego commita
git commit --amend -a -m "..."
Łączenie commitów, ale dopiero następujących po podanym
git rebase -i SHA
Stworzenie commita usuwającego zmiany z innego commita
git revert --no-edit SHA
Odzyskanie pliku z konkretnego commita
git checkout -f SHA nazwa-pliku
Operacje na branchach
Sprawdzanie bieżącego brancha:
git branch
git status -sb
Tworzenie nowego brancha wskazującej na bieżącego commita (lub SHA-1):
git branch NAZWA [SHA-1]
Przełączanie branchy:
git checkout NAZWA
Stworzenie nowego brancha i przełączenie na niego:
git checkout -b NAZWA
Branche zawarte w aktualnym branchu:
git branch --merged
Branche rozłączne z aktualnym branchem:
git branch --no-merged
Usuwanie gałęzi (tylko gdy jest zmergowana)”
git branch -d NAZWA
Usuwanie gałęzi (wymuszone)
git branch -D NAZWA
Zmiana nazwy brancha
git branch -m STARA-NAZWA NOWA-NAZWA
Różnice pomiędzy branchami
git diff --name-status
Merge
Łączenie gałęzi NAZWA z obecną
git merge NAZWA
Usuwanie merga
git reset --hard HEAD~
Rebase
‘Zaaplikowanie’ (zastosowanie) zmian z bieżącego brancha do brancha NAZWA
git rebase NAZWA
Anulowanie rebase (gdyby po opracji był stan detached HEAD)
git rebase --abort
Zdalne repozytoria
Klonowanie repo
git clone URL
Dodanie adresu repozytorium zdalnego (możemy dołączać kilka repozytoriów zdalnych do jednego lokalnego)
git remote add NAZWA ADRES
Listowanie adresów zdalnych
git remote -v
Śledzenie branchy
Sprawdzenie śledzonego brancha dla brancha X
git config --get branch.X.remote
git config --get branch.X.merge
Ustawianie śledzonego brancha
git branch --set-upstream branch-lokalny repo/branch-zdalny
git branch --set-upstream master origin/master
Lista branchy
Branche lokalne
git branch
Branche zdalne
git branch -r
Wszystkie branche
git branch -a
Synchronizacja gałęzi
Pobranie śledzonego brancha
git fetch
Pobranie zdalnego brancha, łączenie z bieżącym branchem i przywrócenie obszaru roboczego
git pull
Przesylanie bieżącego brancha do brancha śledzonego
git push
Przesłanie z nadpisaniem całego brancha (nadpisaniem historii)
git push -f
Przełączenie na gałąź zdalną
git checkout NAZWA
Optymalizacja + stare commity
Usuwanie zgubionych rewizji
git prune
Optymalizacja repo
git gc
Wersja oprogramowania
git --version
Dokumentacja (pomoc)
git add --help
git branch -- help
git config --help
git init --help
git help add
git help branch
git help config
git help init