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 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: npackd

přehled základních unix/bash prikazu

bash(1) 1/bash tzv “příkazový řádek”, postrach, shell, REPL unixu

pwd

print working directory (aktualni pozice v adresari), adresář/cesta/path vůči HOME (nebo ~ vlnovka/tilda) je zpravidla také součástí

cd

change directory

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

ls

vypise obsah slozky/adresáře ls(1)

ls
ls -l #plný/podrobný výpis

mkdir

vytvoří adresář mkdir(1)

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é

rmdir

rmdir(1)vymaze adresar – musí být prázdný

du

vypise obsah aktualni slozky du(1) 1/du, resp. velikosti obsahu adresaru, lze “zneužít” v výpisu struktury – to lze i pomocí tree(1)

cp

kopírovaní souborů cp(1) 1/cp

cp  odkud/soubor kam-adresar
cp  soubor       kam-adresar/jine-jmeno
cp  -r adr adr2  #rekurzivni kopie

mv

presun nebo prejmenování souborů/adresářů mv(1) 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ů
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"

vi

Oblíbený/proklínaný unix editor http://www.vim.org vi(1)

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 ibassci/kalkulacka (zaškrnout README.md plus .gitignore) tento projekt je vzdálený repozitar

git cheatsheet je vyborná věc!!!

Nyní potřebujeme vytvořit lokální repozitář a pracovní adresář

#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

git config

Nakonfigurujeme globalně (pro uživatele) git

 git config --global user.email tomas.marny@bleble.cz
 git config --global user.name  Tomas Marny

lze nakonfigurovat editor, ktery se pouzije pri zapisu commit message, jinak se použije vim

git config --global core.editor notepad

git status

vypise stav workspace vůči indexu vůči repozitáři…

git add

prida tyto soubory do indexu/stage

  • pokud se jedná o nový soubor, bude trackován
  • pokud je jedná již o trackovaný, přidá se jeho nový obsah

index/stage představuje obsah budoucího commitu, changeset

git add kalkulacka.c kalkulacka.dev #pridame 2 nové soubory
git status

git commit

zapíše obsah indexu jako nový commit, toto nepracuje se serverem!

  • vyvolá se code.editor a je nutne vyplnit commit message
git commit #vyplnit hlaseni
git status
gitk --all #nový commit, 'bod' na větvi master, nový 'bod' historie

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-prirucka.txt · Last modified: 2016/04/29 22:16 (external edit)
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0