Dnes jsme veřejně spustili podporu Gitu na našem hostingu. Pokud jste s přechodem na Git ještě váhali, protože se vám to zdálo složité, není už na co čekat.
V Klientské sekci si přidáte svůj SSH klíč a Git si aktivujete. Naklonujete si repositář k sobě a můžete udělat první push. Větev master se bude vždy deployovat, takže její obsah už poběží pod vaší doménou.
Git může používat každý klient našeho hostingu. Dostupný není pouze v Zelených variantách, které však už několik měsíců nenabízíme.
Jak se u nás Git používá
Na serveru je vám k dispozici repositář se založenou větví master. Ten lze libovolně používat, případně si přidávat další větve.
K deployi obsahu slouží speciální větev production, která obsah nahraje na vaši doménu.
Podrobný naleznete přímo v sekci Git v Klientské sekci.
Co je to Git
O tom na našem blogu psát nebudeme, protože je to rozsáhlé téma. Ale zjednodušeně a v kontextu hostingu bychom mohli napsat, že jde o způsob vývoje a uploadu webových stránek/aplikací. Bez použití FTP, s možností verzí a podílení se více lidí na projektu.
Doporučujeme českou příručku Gitu, která je zdarma ke stažení na knihy.nic.cz (za tip děkujeme Martinovi Pěničkovi).
Další odkazy na české zdroje, které o Gitu pojednávají:
Máte někde podrobnější popis jak to u vás funguje? Existuje možnost definovat post-update hook (třeba kvůli migracím). Jak jsou řešeny „temp“ složky?
Zatím funguje automaticky deploy větve master, ale pravděpodobně to ještě upravíme na jinou větev.
Žádná další nastavení zatím definovat nelze. Co myslíš temp složkami? Ty lze přeci definovat v .gitignore
Nemyslím pouze temp složky ale jakoukoli složku třeba storage složky s obrázky nahranými pomocí aplikace (jde o to aby se ty obrázky při deploynutí nové verze nesmáznuli – protože nejsou v gitu).
Naopak temp (robot loader apod.) by se promazat měl. To je nějak řešené? Nebo pokaždé když pushnu do masteru musím vlézt na FTP a promazat temp?
Ano původní otázku jsem formuloval špatně. Jde mě skutečne o storage složky (uživatelské obrázky – např avatary).
Jirko, jak to teda nakonec je? Cokoliv je pod .gitignore, tak se při deployi nesmaže?
Pokud máš nějaký adresář, který nechceš gitovat, ani deployovat, například
avatars
, tak ho uvedeš v.gitignore
.Tím pádem se ti z tvého počítače tento adresář neuloží do repositáře na hostingu, a při deployi se ani nenahraje do produkčního prostředí.
To znamená, že tam ani nepřemaže tamní adresář
avatars
(ten si tam založíš buď přes FTP nebo předchozím pushem bez.gitignore
)Pokud budu mít ve složce avatars soubor .gitignore s obsahem
*
!.gitignore
tedy ignoruj vše kromě .gitignore, tak to bude fungovat asi stejně, co?
(Jinak neptám se ze zvídavosti, ale proto, že to budu potřebovat 😉
Používat master mi přijde krajně nevhodné. Master se starndardně používá pro živý vývoj. Buď bych používal „production“, nebo to dal volitelné.
Máte pravdu. Něco s tím uděláme.
Už jsme řešení upravili. K deployi slouží větev production. Podrobný návod lze nalézt přímo v sekci Git v Klientské sekci.
Děkujeme za podnět.
Osobne jsem pro pouziti master vetve, neb zacatecnik v gitu nebude vedet jak pracovat s production. Kdo pouziva git dele, tak svuj zivej vyvoj dokaze presunout do jinych vetvi. Ostatni co prejdou z FTP, at maji jednodusi uceni.
Git je velké plus. Je dost možné, že kvůli němu přejdu na váš hosting.
Místo vámi uváděné částečně přeložené příručky bych doporučil knihu Pro Git od Scotta Chacona která vyšla kompletně přeložená v edici CZ.NIC, je uvolněná pod licencí CC a volně dostupná ke stažení na webu http://knihy.nic.cz/
Díky za tip
Co podpora submodulů? Při pushi do větve production se submoduly zaktualizují? Jak by vypadala jejich inicializace? Inicializovat vše automaticky rekurzivně nemusí být třeba u doctriny úplně šťastné. A neinicializace ničeho by byla samozřejmě ještě horší.
Podpora submodulů zatím bohužel není.
A je v plánu do budoucna?