Git - Dodatek A - Rychlá příručka ke Gitu

Vytvoření nového repositáře / Správa větví / Zkoumání historie / Provádění změn / Slučování / Sdílení změn / Údržba repositáře

Obsah

Vytvoření nového repositáře
Správa větví
Zkoumání historie
Provádění změn
Slučování
Sdílení změn
Údržba repositáře

Toto je pouze rychlé shrnutí hlavních příkazů; přechozí kapitoly jejich použití popisují detailněji.

Vytvoření nového repositáře

Z tar archivu:

$ tar xzf project.tar.gz
$ cd project
$ git init
Initialized empty Git repository in .git/
$ git add .
$ git commit

Ze vzdáleného repositáře:

$ git clone git://example.com/pub/project.git
$ cd project

Správa větví

$ git branch         # vypíše všechny lokální větve v tomto repositáři
$ git checkout test  # přepne pracovní adresář na větev "test"
$ git branch new     # vytvoří větev "new" začínající v aktuální HEAD
$ git branch -d new  # vymaže větev "new"

Namísto založení nové větve na aktuální HEAD (výchozí volba), použijte:

$ git branch new test    # větev pojmenovaná "test"
$ git branch new v2.6.15 # tag pojmenovaný v2.6.15
$ git branch new HEAD^   # commit před posledním
$ git branch new HEAD^^  # commit před předposledním
$ git branch new test~10 # deset commitů před vrcholem větve "test"

Vytvoření a současně přepnutí do nové větve:

$ git checkout -b new v2.6.15

Aktualizace a zkoumání větví z repositáře ze kterého jste klonovali:

$ git fetch             # aktualizace
$ git branch -r         # seznam
  origin/master
  origin/next
  ...
$ git checkout -b masterwork origin/master

Načtení větve z jiného repositáře, a volba nového jména ve vašem repositáři:

$ git fetch git://example.com/project.git theirbranch:mybranch
$ git fetch git://example.com/project.git v2.6.15:mybranch

Udržujte si sezname repositářů se kterými pravidelně pracujete:

$ git remote add example git://example.com/project.git
$ git remote                    # seznam vzdálených repositářů
example
origin
$ git remote show example       # načti detaily
* remote example
  URL: git://example.com/project.git
  Tracked remote branches
    master
    next
    ...
$ git fetch example             # aktualizuj větve z example
$ git branch -r                 # seznam všech vzdálených větví

Zkoumání historie

$ gitk                      # znázorni a procházej historii
$ git log                   # seznam všech commitů
$ git log src/              # ...modifikujících src/
$ git log v2.6.15..v2.6.16  # ...v v2.6.16, ne v v2.6.15
$ git log master..test      # ...ve větvi test, ne ve větvi master
$ git log test..master      # ...ve větvi master, ale ne ve větvi test
$ git log test...master     # ...v jedné větvi, ne v obou
$ git log -S'foo()'         # ...kde rozdíl obsahuje "foo()"
$ git log --since="2 weeks ago"
$ git log -p                # zobraz také patche
$ git show                  # nejnovější commity
$ git diff v2.6.15..v2.6.16 # rozdíl mezi dvěma otagovanými verzemi
$ git diff v2.6.15..HEAD    # rozdíl oproti aktuálnímu vrcholu
$ git grep "foo()"          # vyhledej "foo()" v pracovním adresáři
$ git grep v2.6.15 "foo()"  # vyhledej "foo()" ve staré větvi
$ git show v2.6.15:a.txt    # zobraz starou verzi souboru a.txt

Vyhledávání chyb (regresí):

$ git bisect start
$ git bisect bad                # aktuální verze je chybná
$ git bisect good v2.6.13-rc2   # poslední známá dobrá revize
Bisecting: 675 revisions left to test after this
                                # tady proveďte testy, potom zadejte:
$ git bisect good               # pokud je revize dobrá, nebo
$ git bisect bad                # pokud je revize špatná.
                                # opakujte až do nalezení viníka.

Provádění změn

Ujistěte se že git ví na koho svalovat vinu:

$ cat >>~/.gitconfig <<\EOF
[user]
        name = Your Name Comes Here
        email = you@yourdomain.example.com
EOF

Vyberte soubor jehož obsah má být zahrnut v dalším commitu, a poté proveďte commit:

$ git add a.txt    # aktualizovaný soubor
$ git add b.txt    # nový soubor
$ git rm c.txt     # starý soubor
$ git commit

Nebo, připravte a vytvořte commit v jednom kroku:

$ git commit d.txt # použije aktuální obsah pouze u souboru d.txt
$ git commit -a    # použije aktuální obsah všech sledovaných souborů

Slučování

$ git merge test   # začlení "test" do aktuální větve
$ git pull git://example.com/project.git master
                   # načte a začleňuje do vzdálené větve
$ git pull . test  # ekvivalent příkazu git merge test

Sdílení změn

Importování nebo exportování patchů:

$ git format-patch origin..HEAD # zformátuje patch pro každý commit
                                # v HEAD ale ne v origin
$ git am mbox # import patchů z mailboxu "mbox"

Načtení větve z jiného git repositáře, a následně její sloučení do aktuální větve:

$ git pull git://example.com/project.git theirbranch

Uložení načtené větve do lokální větve před jejím začleněním do aktuální větve:

$ git pull git://example.com/project.git theirbranch:mybranch

Po vytvoření commitů v lokální větvi aktualizujte vzdálenou větev vašimi commity:

$ git push ssh://example.com/project.git mybranch:theirbranch

Když se vzdálená i lokální větev obě jmenují "test":

$ git push ssh://example.com/project.git test

Zhrácená verze pro často používané vzdálené repositáře:

$ git remote add example ssh://example.com/project.git
$ git push example test

Údržba repositáře

Kontrola poškození:

$ git fsck

Rekomprese, odstraňte nepoužívaný balast:

$ git gc

Komentáře

K tomuto článku zatím žádné komentáře neexistují (nebo čekají na schválení).

Nový komentář

Všechny komentáře podléhají schválení - mezi odesláním komentáře a jeho zobrazením na této stránce tedy může být prodleva. Vyplníte-li e-mailovou adresu, budete o schválení či neschválení komentáře informováni.

V titulku ani v textu nejsou povoleny HTML tagy - budou automaticky odstraněny. Odstavec ukončíte prázdným řádkem.

(nepovinné)