Komendy GITa (cheat-sheet)

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
comments powered by Disqus