Jedna z věcí, kterou potřebuju je centrální úložiště. Část věcí píšu doma, něco v práci, občas je potřeba dělat odkudkoliv na tom co zrovna hoří... A ne vždy je praktické/možné přenášet všechno sebou.
Ano presne na toto je git a podobne systemy idealni nastroj
Takže v práci dělám na projektu A, udělám commit a push na GitHub. Doma pak stáhnu a pokračuju v práci.
Dejme tomu bude potřeba udělat zásah do strého projektu, doma stáhnu, udělám opravy, push na GitHub. Ovšem v práci pak zjistím, že před X měsíci jsem tohle už taky řešil a jen nenahrál na server. Jde to sloučit, nebo jak na to Git upozorní - předpokládám, že zařve a je to rozumně řešitelné.
Tak záleží co je myšleno tím ne-nahrál na server, pokud byla práce v gitu (vše bylo commitnuto) a jen to nebylo pushnuto na server, tak se stím v závislosti na tom jak velké to byly změni git docela dobře popere, pokud člověk používá například pro práci s git i nějaké IDE či grafickou nástvbu, tak řešení případných konfliktů bývá poměrně bezbolestné.
Nebylo by lepší na vývoj z domu mít druhý účet a skládat to jako od dvou vývojářů? Má to nějaké výhody, nebo je to úplný nesmysl?
Tady nevidím moc důvod proč si to tak komplikovat, mít více ůčtů (forků) má zejména význam pokud na projektu dělá více lidí a je třeba jejich práci revidovat a schvalovat před začleněním.
Pokud na projektu pracuje člověk sám, tak nevidím důvod proč si vytvářet fork. Obocně se snažím na jakoukoliv sadu změn vytvářet si vlstní větev a tu pak případně začlenit do hlavní větve.
A nakonec, u webových projektů, se mi prostě nelíbí představa mamutí složky .git na webserveru. Jistě, můžu zakázat přístup do složky, ale...
Tak ono není důvod mít .git součástí těch projektů na serveru, je to jen o způsobu deploy. Osobně bych doporučoval mít nějaký nástroj skript (gitlab má podporu pro deploy), který zajistí nahrání dané verze projektu na dané umístění.
Navíc jak správně řešit když samostatně vyvíjím např. knihovnu pro DB, prezentační vrstvu (hromada SASSy šablon + kompilované styly), hodilo by se spíš řešit Git pro jednotlivé komponenty a pak jenom poskládat hotový projekt z aktuálních verzí. Jak k tomu přistupovat? Nebo prostě .git pro každý web a případné knihovny prostě kopírovat...
Tady záleží na preferencích, někdo preferuje monolitický přístup někdo zase ne. Osobně to řeším tak že mám hlavní repositář a jednotlivé komponenty mají vlastní git a jsou začleněny jako git submoduly do toho hlavniho git projektu. Jednotlive verze projektu pak maji specifikovan presne verze jednotlivych submodulu/komponent