Git
GIT je moderní SCM systém, který byl původně vytvořen pro správu zdrojových kódů linuxového jádra.[1]
Klienti
V linuxu je klient pro práci gitem ovykle součástí distribuce. Klienta pro MS Windows si můžete stáhnout z http://sourceforge.net/projects/gitextensions/.
Alternativní klient pro Windows je ke stažení z http://code.google.com/p/msysgit/. Tento klient umožňuje jak práci v CLI (příkazová řádka) tak i GUI (grafické rozhraní). Jak se můžete přesvědčit z přiložených screenshotů spouští se a vypadána linuxu i MS Windows podobně
Velmi slibně vypadá nástroj TortoiseGIT (obdoba TortoiseCVS a TortoiseSVN) pro Windows: http://code.google.com/p/tortoisegit/
Manuálů jak pracovat s gitem se válí po internetu celá řada..
Vytvoření git serveru
Pro zpřístupnění gitu přes www server apache je třeba následující postup:
Na straně www serveru
- 1
- Na stroji musí být nainstalován balík git-core a pro apache povolen webdav
root@server:~# apt-get install git-core
root@server:~# a2enmod dav dav_fs
|
- 2
- Vytvoří se adresář do kterého budou cpát klienti změny, a pak se pro tento adresář aktivuje git a aby mohli přistupovat do tohoto adresáře klienti přes webdav, musí se nastavit příslušná práva pro web server
root@server:/var/www/accesscontrol.git# git --bare init
Initialized empty Git repository in /var/www/accesscontrol.git/
root@server:/var/www/accesscontrol.git# chown -R www-data.www-data .
|
- 3
- Pak se pro tento adresář nastaví konfiguračním souborem
/etc/apache2/conf.d/git.conf
webDAV
<Location /accesscontrol.git>
DAV on
</Location>
|
- 4
- Pokud chcete mít přístup do adresáře chráněný autorizací, rozšíříte tento konfigurační soubor o další volby..
<Location /accesscontrol.git>
DAV on
AuthType Basic
AuthName "Git"
AuthUserFile /var/www-pass/accesscontrol.pwd
Require valid-user
</Location>
|
- 5
- ..a vytvoříte odpovídající soubor
/var/www-pass/accesscontrol.pwd
- 6
- Potom znovu načtete konfiguraci vašeho web serveru
root@server:~# /etc/init.d/apache2 force-reload
|
Na straně klienta
Test dostupnosti repository
Předtím, než provedete první commit, je záhodno otestovat dostupnost repozitory z klientského počítače. Pro tento účel lze použít nástroj curl, který umožňuje s parametrem -v podrobnější výpis. Z něj lze pak zjistit příčinu ev. problému v připojení.
Zkuste si jím vypsat obsah souboru HEAD na straně repozitory.
user@klient:~/accesscontrol-git# curl --location -v http://<login>:<password>@<server>/accesscontrol.git/HEAD
Abyste se vyhnuli použití přihlašovacího jména a hesla na příkazové řádce, můžete k autorizaci využít soubor ~/.netrc
user@klient:~/accesscontrol-git# curl --netrc --location -v http://<server>/accesscontrol.git/HEAD
ref: refs/heads/mediawiki
Pokud je vše v pořádku, tak se vám vypíše obsah souboru HEAD na straně repozitory. V případě že je nějaký problém, tak z chybové stránky máte šanci zjistit kde hledat příčinu.
První commit
Při prvním commitu do prázdné repozitory je třeba použít parametr --all
user@klient:~/accesscontrol-git# git push --all http://<login>:<password>@<server>/accesscontrol.git
U dalších commitů již není nutný. Aby nebylo nutné pokaždé zadávat celé URL vzdáleného repozitáře, můžete cestu včetně autorizace nastavit přímo v lokální repository.
user@klient:~/accesscontrol-git# git config remote.origin.url http://<login>:<password>@<server>/accesscontrol.git/
Při dalších commitech pak už stačí pouze..
user@klient:~/accesscontrol-git# git push
Problémy a jejich řešení
Git verze 1.5.6 a 1.6.0 neumí zapisovat (push) na http repozitáře na tomto serveru. Verze 1.6.1 a vyšší jsou OK. Tato chyba se projevuje následující chybovou hláškou:
Unable to create branch path http://login:pass@support.dce.felk.cvut.cz/git/repo.git/info Error: cannot lock existing info/refs error: failed to push some refs to 'http://login:pass@support.dce.felk.cvut.cz/git/repo.git' |
- PUT error: curl result=22, HTTP code=403
- Chyba je na straně repository v souboru
info/refs
S největší pravděpodobností buď chybí, nebo má špatně nastavená práva.
Viz také
Seriál video návodů na práci s GITem v příkazové řádce
Přehledný tahák nejčastějších operací v GITu
Seriál na root.cz
- http://www.root.cz/clanky/git-distribuovana-sprava-revizi/
- http://www.root.cz/clanky/git-sprava-repositaru/
- http://www.root.cz/clanky/git-config-commit-e-mail-a-browsing/
- http://www.root.cz/clanky/git-nase-prvni-vydani/
Oficiální stránky