GIT

Externi odkazy

git promenne

git config --global user.name “John Doe”
git config --global user.email johndoe@example.com
git config --list … seznam promennyh
git config --list --system' … zobrazi systemove promenne
git config --list --global' … zobrazi globalni promenne
git config --global alias.co checkout … aliasy
git config --global credential.helper cache … cachovane kredence
/etc/gitconfig … system config
~/.gitconfig, ~/.config/git/config … global config
.git/config … local config
git help … help
git help remote … help k remote

Vytvoreni repozitare, prace s repozitari

git init … vytvoreni lokalniho repozitare v aktualnim adresari
git clone git@github.rtp.raleigh.ibm.com:tomas.lipensky-cz/bi-dwh_tools.git … vytvori adresar bi_dwh_tools s klonem repozitare z URL
git remote -v … vypise repozitare a jejich adresy v danem git adresari
git remote … ukaze aktualni vzdaleny repozitar
git remote add repo2 URL … prida novy vzdaleny repozitar (git server)
git fetch repo2 … ziskani vsech zmen ve vsech vetvich z git serveru repo2, co nejsou v lokalnim repu, neprepise lokalni soubory
git pull vetev1 … fetch z git serveru a aplikovani zmen (merge) na vetev vetev1
git pull … fetch a merge
git push origin master … publikuje zmeny vetve master na git server origin
git push origin test:master … publikuje lokalni vetev test do vzdalene master
git push … publikuje zmeny vsech vetvi na aktualni git server
git remote show repo2 … ukaze stav na servery repo2
git remote rename origin repo2 … prejmenuje git server origin na repo2

Prace s kodem, schvalovani zmen, historie

git status … aktualni vetev a zmeny v ni
git status -s … aktualni zmeny - 1 soubor = 1 radek
git add service_scanner.sh *.txt … pridani souboru do stage - kontrola GITem, po commitu se to ulozi k dane verzi projektu
git commit -m “komentar k commitnuti” … potvrzeni kodu k odeslani u vsech souboru pridanych pomoci add
git commit –amend … oprava posledniho commitu
git reset HEAD service_scanner.sh … odebere soubor service_scanner z commitu
git reset –hard origin/dev … prepise na tvrdo lokalni zmeny ?
git checkout – service_scanner.sh … vrati zmeny z service_scanner.sh, ktere jsme provedli v souboru
git log … seznam historie commitu - check sum, popis, datum, autor
git log –pretty=oneline … jednoradkovy, pouze check sum a popis
git log -p … ukaze historii i se zmenama
git log –stat … ukaze jen statistiky zmen
git show … ukaze posledni zmeny
git diff … porovna zmeneny soubor oproti puvodnimu (z git lokalnih repozitare)
.gitignore … ignore list pro stage a commit
git rm a.txt … odebere z repozitare a.txt
git mv b.txt a.txt … prejmenuje v repu b.txt na a.txt

git reflog … seznam zmen
git revert … vrati zmeny
git reset … pozor, muze byt nebezpecne, ztrata zmen
git gc … garbage collection

Tagy

Vice info: https://git-scm.com/book/en/v1/Git-Basics-Tagging

git tag -a 1.0.1 -m "applied hotfix 1" … prida tag k posledni zmene (commitu)
git tag -a 1.0.0 -m "initial version" 20721acbb115cc33848dfcc21 … otaguje commit, jehoz check sum, nebo jeho cast je v parametru
git show 1.0.1 … ukaze zmeny pro dany tag
git tag … seznam tagu
git tag pracovni … prida lehky tag - bez komentaru, k posledimu commitu
git tag -l "prac*" … vylistuje vsechny tagy, co zacinaji na prac
git push REMOTE TAG … odesle zmeny do repozitare REMOTE s tagem TAG, jinak se tagy neprenasi
git push REMOTE --tags … odesle zmeny do repozitare, prenese i tagy
'git notes add -m “Zkontrolovano 2019/05/12' … pridani note

Vetve / branches

Vice o vetvich: https://git-scm.com/book/en/v1/Git-Branching-Basic-Branching-and-Merging

git checkout master … prepne HEAD - ukazatel na aktualni vetev na “master” a prehodi vsechny soubory na aktualni soubory z vetver master
git checkout -b hotfix1 … vytvori z aktualni vetve novou vetev hotfix1 a prepne se do ni
git commit -a -d "oprava hotfix1" … add (-a = add na vsechny soubory, co se zmenily) a commit (schvaleni zmen)
git checkout master … prepne zpet do puvodni vetve
git merge hotfix1 … sjednoti zmeny - prijme zmeny z hotfixu do aktualni branche
git branch -d hotfix1 … smaze vetev hotfix1
git branch … seznam vetvi, ukaze aktualni
git checkout -b hotfix1 origin/hotfix1 … vytvori novou lokalni vetev - kopii vzdalene vetve hotfig1

git flow

Po doinstalovani doplnku flow lze ridit vyvoj (management vice vetvi) jednodusseji.

Vyreseni konfliktu

git checkout master
git branch nova-vetev-na-ulozeni-konfliktnich-commitu
git fetch –all
git reset –hard origin/master

GitLab

GitLab api - skupiny
GitLab api - projekty
curl -k –header "PRIVATE-TOKEN: $TOKEN" https://gitlab.url.com/api/v3/groups/my-group 2>/dev/null | grep -o ”[^,\“]\+:my-group/[^,\”]\+\.git“ … url na vylistovani objektu grupy