====== git prirucka====== toto je martinův zápis (+honza doplnění, honza ještě neověřil na windows!!!) 16.5.2014 pod mým vedením založil git [[github>ibassci/kalkulacka|github projekt kalkulacka]] * honza je starý unixák (od října 1991), martin provozuje win81 * z [[http://git-scm.org]] stažen git software pro windows: * Git bash -- "unixová" konsole * Git GUI, spouští se ''git gui'' * ''gitk --all'' browser/viewer větví honza také lehce provozuje Windows (qůli Lispworks a micro-graphics knihovně je to nutné) a silně doporučuje/používá pro instalaci sw na windows: [[https://code.google.com/p/windows-package-manager/|npackd]] ====== přehled základních unix/bash prikazu ====== [[man>bash(1)]] [[die.net>1/bash]] tzv "příkazový řádek", postrach, shell, REPL unixu =====pwd===== **p**rint **w**orking **d**irectory (aktualni pozice v adresari), adresář/cesta/path vůči [[#HOME]] (nebo ~ vlnovka/tilda) je zpravidla také součástí =====cd===== **c**hange **d**irectory <code bash> cd ../.. #vyleze o dv adresáře "nahoru", směrem ke kořeni cd #vleze do $HOME, ~ domovského adresáře, zpravidla /C/Users/honza cd . #vlastně neudělá "nic" cd .. #do nadřízeného cd ../.. #do nadřízeného nadřízeného cd podadresar cd pod/adre/sar cd Desktop/PROG2 #vleze do slozky PROG2 #TIP napsat zacatek a Tab to dopise #TIP fungují šipky nahoru/dolů po historii příkazů, staré příkazy lze editovat #POZN vlnka ~ znamena hlavni slozka uzivatele </code> =====ls===== vypise obsah slozky/adresáře [[man>ls(1)]] <code bash> ls ls -l #plný/podrobný výpis </code> =====mkdir===== vytvoří adresář [[man>mkdir(1)]] <code bash> mkdir novy-adresar mkdir -p nekolik/novych/adresaru/a_podadresaru #POZN: nevkladejde znak mezera do jmen adresaru a souboru (jde to, ale je to zdrojem problemu) #POZN: také nepouzivejte znak '/' (lomítko) a '\' zpětné </code> =====rmdir===== [[man>rmdir(1)]]vymaze adresar -- musí být prázdný =====du===== vypise obsah aktualni slozky [[man>du(1)]] [[die.net>1/du]], resp. velikosti obsahu adresaru, lze "zneužít" v výpisu struktury -- to lze i pomocí [[man>tree(1)]] =====cp===== kopírovaní souborů [[man>cp(1)]] [[die.net>1/cp]] <code bash> cp odkud/soubor kam-adresar cp soubor kam-adresar/jine-jmeno cp -r adr adr2 #rekurzivni kopie </code> =====mv===== presun nebo prejmenování souborů/adresářů [[man>mv(1)]] [[die.net>1/mv]] =====globing===== wildcard/žolíky/zástupné znaky pro jména souborů/adresářů -- expanduje shell/bash * '*' libovolný pocet libovolných znaků * '?' jeden libovolný znak * [ch] výčet znaků * [0-9] výčet znaků * \ escape, ruší význam spec. znaků <code bash> ls -l *.c #soubory končící .c ls -l .* #soubory začínající . tečkou -- normálně je ls nevypisuje ls -l *.[ch] #soubory končíci .c a .h ls -l [0-9]* #soubory začinající číslicí ls -l \*.c #soubor se opravdu jmenuje "*.c" </code> =====vi===== Oblíbený/proklínaný unix editor [[http://www.vim.org]] [[man>vi(1)]] * [[http://www.nti.tul.cz/~satrapa/docs/vim/|Satrapovy stránky]] * [[vimref]] * [[http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html|cheatsheet]] ====== ibassci/kalkulacka====== Jak jsme založili tento projekt =====github===== Na [[http://github.com]] se založil nový účet (username/heslo) a založil se nový projekt [[github>ibassci/kalkulacka]] (zaškrnout README.md plus .gitignore) tento projekt je [[http://ndpsoftware.com/git-cheatsheet.html#loc=remote_repo;|vzdálený repozitar]] [[http://ndpsoftware.com/git-cheatsheet.html#loc=remote_repo;|git cheatsheet]] je vyborná věc!!! Nyní potřebujeme vytvořit //lokální repozitář// a [[http://ndpsoftware.com/git-cheatsheet.html#loc=workspace;|pracovní adresář]] <code bash> #projekty (git-repozitare) z github si umístíme do adresářů ~/Desktop/github/<projekt> mkdir ~/Desktop/github cd ~/Desktop/github #naklonujeme repozitar #https://.... je URL pro repo, lze kopírovat do clipboardu na github stránce projektu git clone https://github.com/ibassci/kalkulacka.git #vytvoří se adresář kalkulacka, který obsahuje (prázdný projekt): cd kalkulacka ls -l README.md #README projektu ls -l .gitignore #soubor se vzory ignorovanych souboru du .git #skrytý adresář obsahující lokalní repozitar #zkopirujeme/presuneme do workspace existujici soubory cp ../../PROG2/struktury/kalkulacka.c cp ../../PROG2/struktury/neco.dev #projekt soubor pro Dev C++ IDE cp ../../PROG2/struktury/neco.cbp #projekt soubor pro Code::blocks IDE </code> =====git config===== Nakonfigurujeme globalně (pro uživatele) git <code bash> git config --global user.email tomas.marny@bleble.cz git config --global user.name Tomas Marny </code> lze nakonfigurovat editor, ktery se pouzije pri zapisu //commit message//, jinak se použije [[vimref|vim]] <code bash> git config --global core.editor notepad </code> =====git status===== vypise stav workspace vůči indexu vůči repozitáři... =====git add===== prida tyto soubory do [[http://ndpsoftware.com/git-cheatsheet.html#loc=index;|indexu/stage]] * pokud se jedná o nový soubor, bude //track//ován * pokud je jedná již o //track//ovaný, přidá se jeho nový obsah //index///stage představuje obsah budoucího //commit//u, //changeset// <code bash> git add kalkulacka.c kalkulacka.dev #pridame 2 nové soubory git status </code> =====git commit===== zapíše obsah //index//u jako nový //commit//, toto nepracuje se serverem! * vyvolá se **code.editor** a je nutne vyplnit //commit message// <code bash> git commit #vyplnit hlaseni git status gitk --all #nový commit, 'bod' na větvi master, nový 'bod' historie </code> =====git push===== přenese obsah lokální-repo na vzdálený (github) repo * nutno zadat user/password pro github ucet * místo https: url lze používat **ssh** a private/public key Teprve zveřejněním na github/vzdáleném repo mohou spolupracovat ostatní =====git software===== Místo **git** příkazů na příkazové řádce lze používat: * git gui * různé grafické klienty -- http://git-scm.org * .NET aplikaci http://windows.github.com * znakový klient [[github>jonas/tig]] * existuje GIT podpora pro IDE: Visual Studio 2013, Eclipse, [[github>tpope/vim-fugitive|vim plugin]]