Git: Porovnání verzí
Řádek 143: | Řádek 143: | ||
Vytvoříme repozitář pro Gitosis a nahraje veřejné klíče. | Vytvoříme repozitář pro Gitosis a nahraje veřejné klíče. | ||
cd /home/git | |||
mkdir repositories && cd repositories | |||
{{GNU GPL}} | {{GNU GPL}} |
Verze z 10. 4. 2010, 12:52
When I say I hate CVS with a passion, I have to also say that if there any SVN users (Subversion users) in the audience, you might want to leave. Because my hatred of CVS has meant that I see Subversion as being the most pointless project ever started, because the whole slogan for the Subversion for a while was 'CVS done right' or something like that.
--- Linus Torvalds
Git je distribuovaný systém pro správu verzí (software pro správu zdrojových kódů projektů). Git byl původně vytvořen Linusem Torvaldsem pro vývoj jádra Linux, dnes je spravován Junion Hamanem. Git je svobodný softare šířený pod GPL licencí verze 2.
Odkazy
Poznámky
Instalace
apt-get install git-core
Další doplňující balíčky jsou git-cvs, git-daemon-run, git-gui, gitk a gitweb.
Vytvoření repozitáře
Nový prázdný git repozitář vytvoří příkaz
$ git-init-db
Git repozitář můžeme vytvořit pro existující projekt, například
$ cd /cesta/k/mému/projektu $ git-init-db (1) $ git-add . (2)
kde (1) vytvoří /cesta/k/mému/projektu/.git adresář a (2) přidá do projektu všechny existující soubory z běžného adresáře (symbol tečka).
Git může být takto používán i pro lokální projekty na kterých pracuje jediný uživatel.
Naklonování repozitáře
Repozitář, který máme přístupný přes ssh naklonujem příkazem git clone, například
git clone gin@josef.fsv.cvut.cz:/home2/gin/git [ adresář ]
Správa větví
Jeden git repozitář může udržovat více vývojových větví (branches). Pro vytvoření větve se jménem "experimentalni" zadáme příkaz
$ git branch experimentalni
Jestliže následně zadáme příkaz
$ git branch
získáme výpis všech existujících větví.
experimentalni * master
Kde "experimentalni" je jméno právě vytvořené větve a "master" je implicitní automaticky vytvořená větev. Hvězdička označuje větev, ve které se právě nacházíme. Pro přechod k jiné větvi zadáme
$ git checkout experimentalni
Pro sloučení experimentalni větve s master zadáme
$ git commit -a # v experientalni vetvi $ git checkout master $ git pull . experimentalni
Obnova nechtěně zrušených souborů
Zrušené soubory zobrazíme příkazem
$ git ls-files -d
pro jejich obnovení stačí zadat
$ git ls-files -d | xargs git checkout --
Převod CVS repozitáře na git
Přihlásíme se pomocí ssh na server s CVS repozitářem a pomocí příkazu git import vytvoříme git kopii. Tato operace může chvíli trvat, protože jsou převáděny všechny verze souborů uložené na CVS.
ssh gin@josef.fsv.cvut.cz git cvsimport -v -d /home2/gin/cvsroot -C git gin
Na svém počítači vytvoříme klon nového git repozitáře.
git clone gin@josef.fsv.cvut.cz:/home2/gin/git
V adresáři git (jméno adresáře použité v naší ukázce) změníme jeden soubor, zobrazíme diff a uložíme změny v lokální kopii.
cd git edit README git diff git commit -a
Pro uložení změn v hlavním repozitáři musíme použít příkaz git push
.
Příklad
git cvsimport -v -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/sqltutor \ -C sqltutor sqltutor
Převod SVN repozitáře na git
Převod SVN repozitáře na Git se provede pomocí příkazu git svnimport (součást balíčku 'git-svn'). Příklad:
git svnimport -r -v -C landa-ds-git -I .gitignore -T "" -A authors file:///home2/vs/svn/landa-ds git clone --bare landa-ds-git landa-ds rm -rf landa-ds-git
Poznámka pro SVN repozitáře bez trunku.
Příklad souboru authors.
cat authors landa = Martin Landa <martin.landa@fsv.cvut.cz>
Gitosis
Gitosis je nástroj pro správu Git repozitářů.
Instalace
apt-get install python-setuptools git clone git://eagain.net/gitosis.git python setup.py install
nebo pro Debian GNU/Linux
apt-get install gitosis
Zprovoznění
Založíme uživatele git.
adduser \ --system \ --shell /bin/sh \ --gecos 'git version control' \ --group \ --disabled-password \ --home /home/git \ git
Vytvoříme repozitář pro Gitosis a nahraje veřejné klíče.
cd /home/git mkdir repositories && cd repositories