GitMagic (3) – klonování všude kolem
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

GitMagic (3) – klonování všude kolemGitMagic (3) – klonování všude kolem

 
Hledat
Moderní platforma pro vytvoření vašeho nového webu – Wix.com.
Nyní už můžete mít web zdarma.
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno
Laser Game Ostrava

GitMagic (3) – klonování všude kolem

Google       Google       21. 6. 2009       10 411×

Klonování je základním způsobem, jak získat v distribuovaných verzovacích systémech, mezi které Git patří, kopii souborů, které jsou v repozitáři.

Reklama
Reklama

Ve starších verzovacích systémech byl checkout standardní operací k získání kupy souborů v požadovaném sta­vu.

V Gitu a jiných distribuovaných verzovacích systémech je klonování standardní operací. Abyste měli soubory, musíte udělat klon celého repozitáře. Jinými slovy vlastně zrcadlíte centrální server. Cokoli může dělat hlavní server, můžete vy také.

Synchronizace počítačů

Tohle byl důvod, proč jsem Git použil poprvé. Používat rsync nebo tarbally pro základní synchronizaci se dá snášet. Ale někdy potřebuju editovat na mém notebooku, jindy na mém desktopu. A počítače spolu nemusí být propojené.

Inicializujte Gití repozitář a proveďte commit vašich souborů na jednom počítači a na jiném:

$ git clone jiny.pocitac:/cesta/k/souborum

k získání druhé kopie souborů a vůbec celého repozitáře. Odteď:

$ git commit -a
$ git pull jiny.pocitac:/cesta/k/souborum HEAD

natáhne změny souborů na počítač, na kterém zrovna pracujete. Jestliže jste v poslední době provedli nějaké konfliktní změny, Git vám dá vědět a měli byste provést commit po jejich vyřešení.

Klasické verzování

Inicializujte Gití repozitář pro vaše soubory:

$ git init
$ git add .
$ git commit -m "Počáteční commit"

Na centrálním serveru inicializujte prázdný Gití repozitář se stejným jménem a spusťte Gitího démona, pokud je potřeba:

$ GIT_DIR=projekt.git git init
$ git daemon --detach  # už může běžet

Některé volně přístupné Gití hostingy, jako například repo.or.cz, budou používat jiné způsoby, jak vytvořit nový prázdný repozitář, např. odesláním webového formuláře.

Nastrkejte (push) data vašeho projektu na centrální server s:

$ git push git://centralni.server/projekt.git

Jsme hotovi. Když chce vývojář zdrojové soubory projektu, stačí když napíše:

$ git clone git://centralni.server/projekt.git

Po provedení změn je kód nahrán na hlavní server pomocí:

$ git commit -a
$ git pull

Fórkujeme

Nelíbí se vám, jakým směrem se projekt ubírá? Myslíte, že byste to dokázali lépe? Pak na vašem serveru:

$ git clone git://hlavni.server/projekt.git

A řekněte všechno o vašem forku projektu na vašem serveru.

Kdykoli později můžete sloučit změny z původního projektu pomocí:

$ git pull

Zálohy

Chcete četné geograficky různě rozmístěné rezervy? Pokud má váš projekt mnoho vývojářů, nedělejte vůbec nic! Každý klon repozitáře je záloha sama o sobě. Nejen momentálního stavu, ale celé historie projektu. Díky kryptografickému hashování se hned, jak je něčí klon poškozený, o tom dotyčný dozví při pokusu komunikovat s ostatními.

Pokud váš projekt tak populární není, najděte co nejvíce serverů, kde byste mohli klony projektu hostovat.

Opravdu paranoidní jedinci by si vždycky měli někde bezpečně poznamenat poslední 20-bytový SHA1 hash posledního commitu (HEAD). Mělo by to být na nějakém bezpečném místě, nemusí však vůbec být tajné. Například zveřejnění v novinách by mohlo být dobré, protože pro případného útočníka je velmi těžké změnit všechny kopie novin.

Děláme více věcí najednou rychlostí světla

Řekněme, že chcete pracovat na více funkcích současně. Pak proveďte commit a poté:

$ git clone . /nejaky/novy/adresar

Git k vytvoření tohoto klonu využívá hard linky a sdílení souborů co to jen jde, takže bude vytvořen v okamžiku. Nyní můžete pracovat na více funkcích v jeden a ten samý čas. Kupříkladu můžete editovat jeden klon, zatímco se druhý kompiluje.

Kdykoli můžete provést commit nebo pull.

$ git pull /puvodni/klon HEAD

Guerilla verzování

Pracujete na projektu, který používá jiný verzovací systém, a jen těžce snášíte, že nemůžete používat svůj Git? Pak vytvořte prázdný Gití repozitář ve vašem pracovním adresáři:

$ git init
$ git add .
$ git commit -m "Počáteční commit"

a naklonujte ho:

$ git clone . /nejaky/novy/adresar

Nyní přejděte do nového adresáře, pracujte zde a používejte při tom Git. Jestli chcete provést synchronizaci se všemi ostatními, přejděte do adresáře s originálním repozitářem, sychronizujte s jiným verzovacím systémem a napište:

$ git add .
$ git commit -m "Synchronizace s ostatními"

Potom přejděte do nového adresáře a spusťte:

$ git commit -a -m "Moje změny"
$ git pull

Postup k zpřístupnění vašich změn ostatním závisí na tom dalším verzovacím systému. Nový adresář obsahuje změněné soubory. Udělejte cokoli jiný verzovací systém potřebuje k nahrání změn do centrálního repozitáře.

git svn může zautomatizovat postup výše a může být též použit k exportu Gitího projektu do Subversion repozitáře.

Tento článek je překladem třetí kapitoly – Cloning Around – z GitMagic od Bena Lynna. V další kapitole se bude psát o větvení kódu.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
(fotka) Jakub KulhanAutor momentálně studuje na osmiletém gymnáziu v Kralupech nad Vltavou. Programování se věnuje od 11 let, kdy ho poprvé uchvátila možnost "mít vlastní stránky". Nakrátko poté objevil PHP a už se to s ním "vezlo". Webové aplikace zůstaly jeho hlavní doménou, ale ve svém volném čase probádává nejrůznější zákoutí světa programování, programovacích jazyků a všeho kolem nich.
Web    

Nové články

Obrázek ke článku Ericsson ConsumerLab Report: rozšířená realita je další úrovní gamingu

Ericsson ConsumerLab Report: rozšířená realita je další úrovní gamingu

Celkem 66 % uživatelů zajímá rozšířená realita v oblasti gamingu. Mezi nimi je i 35 % těch, kteří jinak hry nehrají.
Pro téměř 50 % respondentů by bylo zajímavé zapojení virtuální objektů do reálného světa. Objekty by zůstaly tam, kde je při hře „umístili“.
Až 43 % uživatelů láká využití rozšířené reality ve sportu

Reklama
Reklama
Obrázek ke článku Instalace nejnovější verze Apache 2.4, PHP 7.3, MariaDB 10.3 a Memcached na Windows 10

Instalace nejnovější verze Apache 2.4, PHP 7.3, MariaDB 10.3 a Memcached na Windows 10

Buďte při vývoji efektivní! Pomocí tohoto návodu během chvíle vytvoříte ze svého počítače lokální webový server. Vyzbrojíte jej vším, co budete při práci potřebovat: Apache 2.4, PHP 7.3, MariaDB 10.3 a Memcached. Je to plná polní pro webové vývojáře s Windows 10. Navíc poradíme, jak mít na localhostu více projektů pomocí VirtualHost.

Obrázek ke článku Do poskytovatele managed hostingových služeb vshosting~ vstupují zahraniční investoři

Do poskytovatele managed hostingových služeb vshosting~ vstupují zahraniční investoři

Po více než roce jednání do vshosting~ vstoupili 3 investiční skupiny z Německa: Pecunalta, BrainWeb Investment a Quines Capital. Jde o investiční skupiny, které mají účast na projektech jako PlusServer (největší managed provider v Německu a jeden z největších v Evropě), PLESK, cPanel, CloudLinux, GoDaddy (největší světový hostingový poskytovatel z USA), či Acronis, pomohou vshosting~ v jeho plánované mezinárodní expanzi na další zahraniční trhy. Ve vshosting~ nyní drží 75% podíl, zbylých 25 % zůstává zakladatelům vshosting~, kterými jsou Damir Špoljarič (CEO) a Jan Martinů (CTO).

Obrázek ke článku Posuňte své znalosti IT na výrazně vyšší úroveň

Posuňte své znalosti IT na výrazně vyšší úroveň

Zájem o IT odborníky je v současnosti v tuzemsku i v zahraničí enormní a vedení firem si moc dobře uvědomuje, jak těžké je získat ty správné. I přesto, že je odborníků na trhu dlouhodobý nedostatek, stále platí, že část z nich je - a bude - placena výrazně lépe než ti ostatní. Proč tedy nebýt mezi nimi?

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032019 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý