Vytvoření nového repozitáře GITu
$ git init
Vytvoří nový repozitář GITu v aktuálním adresáři.
Přidání změn
$ git add .
Přidá změny v pracovním adresáři.
Commit
$ git commit
Clone
Kopíruje existující repozitář gitu do lokálního počítače:
$ git clone <adresa>
Kopíruje existující repozitář gitu do lokálního počítače do složky nazvané <slozka>:
$ git clone <repo> <directory>
Výchozí repozitář se může nacházet:
- na lokálním počítači
- na vzdáleném úložišti přístupném přes protokoly HTTP nebo SSH
Zobrazení informace o vzdáleném repozitáři
$ git remote show origin
Změna url vzdáleného repozitáře
$ git remote set-url origin <url>
Prvotní odeslání dat do vzdáleného repozitáře
$ git push -u origin --all
Práce s větvemi
git branch
Vypsání seznamu větví
$ git branch
Vytvoření nové větve
$ git branch <nazev_vetve>
Smazání větvě
$ git branch -d <nazev_vetve>
git checkout
Navigace mezi větvemi
Přepnutí do větve
$ git checkout <nazev_vetve>
git merge
Sloučení větve <nazev_vetve> do aktuální větve
$ git merge <nazev_vetve>
Opravy
Odstranění složky ze vzdáleného repozitáře po přidání do .gitignore
git rm -r --cached ./<nazev_slozky>
Konfigurace
Zobrazení aktuální konfigurace:
$ git config --list --show-origin
Email uživatele – globální
Zobrazit:
$ git config --global user.email
Nastavit:
$ git config --global user.email "your_email@example.com"
Email uživatele – pro daný repozitář
Zobrazit:
$ git config user.email
Nastavit:
$ git config user.email "your_email@example.com"
Zákaz verzování
Ne všechny složky a soubory v projektu chceme verzovat.
- soubory s citlivými údaji (hesla)
- knihovny třetích stran
- složky s dočasnými soubory (cache)
- apod.
Všechny tyto případy je třeba zapsat do souboru .gitignore
.gitignore
Maska pro zápis do souboru .gitignore:
- /<cesta> – platnost od kořene pracovní složky repozitáře
- <cesta>/ – platnost pouze na složky
- * – zástupný znak
- ** – libovolně hluboko
- !<cesta> – negace
- #<text> – komentář
- – escape znak
Příklady
- /temp – git bude ignorovat složku temp (a ve v ní) v kořenovém adresáři projektu
- temp – git bude ignorovat všechny složky temp kdekoliv v projektu
- TEMP – git bude ignorovat všechny složky TEMP kdekoliv v projektu
Case sensitive záležitost
Souborové systémy linuxu (ext4, xfs apod.) rozlišují velikost písmen v názvech souborů a složek (jsou case sensitive).
Naopak souborové systémy používané ve windows (NTFS, FAT) velikost písmen v názvech souborů a složek nerozlišují.
Toto chování lze v rámci gitu změnit pomocí nastavení core.ignoreCase
.
Při vytvoření nového repozitáře git-init
a při klonování repozitáře git-clone
ve windows je rozlišování velikosti písmen ve výchozím stavu vypnuto core.ignoreCase = true
.
Může tím nastat situace, kdy složka s určitým názvem na linuxu není verzována, zatímco ve windows ano.