Mac mini a iCloud mi rozbili Git
Dlho som mal celý svoj PACT v jednej zložke na iCloude. PACT je moja pracovná zložka: projekty, podklady, prepisy hovorov, pravidlá pre agentov, aj kód. Pracoval som na jednom MacBooku a nikdy som nemal dôvod nad tým premýšľať.
Potom prišiel do rodiny Mac mini. Chcel som, aby bežal stále, robil za mňa automatizácie z Codexu a Claude Code a aby som sa k nemu vedel pripojiť, keď mám notebook vypnutý v ruksaku. Na to potreboval mať rovnaké súbory ako ja. iCloud ich už synchronizoval, tak som si myslel, že je hotovo.
Nebolo. Projekty s Gitom sa začali rozbíjať. Raz to vyzeralo, že je všetko v poriadku, o chvíľu agent hlásil chybu v repozitári a projekt bolo treba inicializovať znova. Bola to pre mňa fakt bolístka, lebo som nevedel, ktorý počítač má pravdu.
Skrytá zložka .git
Každý projekt s Gitom má v sebe skrytú zložku .git. Je v nej celá história zmien a nastavenie toho repozitára: ktorá verzia je aktuálna, kam sa posielajú zmeny, čo sa ešte nenahralo. Vy ju bežne nevidíte, ale Git sa na ňu pozerá pri každom kroku.
Pri jednom commite sa v nej naraz zmení viac súborov. Git počíta s tým, že sedia k sebe. iCloud o tom nič nevie. Posiela súbory na druhý počítač po jednom, podľa toho, ako mu to vyjde. Na pár sekúnd tak môže mať Mac mini polovicu nového stavu a polovicu starého. U mňa takéto nekonzistencie trvali kľudne 10 sekúnd. To stačilo, aby sa projekt rozbil.
A druhá vec: iCloud mi jednoducho nesynchronizoval tak rýchlo, ako som potreboval. Keď na jednom počítači skončíte a na druhom hneď začnete, nemáte istotu, že tam zmeny už sú.
Dropbox a Filip
Filip Dřímalka používa Dropbox a s tým istým problémom sa nestretol. Synchronizuje sa mu to hneď a .git sa mu nerozbíja. Preto si nemyslím, že každý cloudový disk je zlý. Len som zistil, že na Git sa nechcem spoliehať na niečo, čo o Gite nevie.
Dnes mám pravidlo jednoduché. Zložku môžem pokojne mať v synchronizovanom priečinku, ale aktívnu zložku .git nenechávam zdieľať medzi dvoma počítačmi naraz. Na prenos zmien medzi počítačmi slúži GitHub.
32 repozitárov na GitHube
Ručne by som to nerobil. Poprosil som Claude Code, aby zmapoval všetku moju prácu a navrhol, ako ju rozdeliť do repozitárov na GitHube. Repozitár je jedna zložka s vlastnou históriou zmien. Claude Code ich vytvoril a k tomu napísal README so zoznamom všetkých repozitárov pre druhý počítač.
Na Mac mini som potom otvoril agenta, poslal mu to README a napísal: „Nastav mi to.“ Stiahol si repozitáre, rozložil zložky PACTu a celé to nastavil. Dnes mám 32 repozitárov.
Odvtedy to beží samo. Na MacBooku zmeny posielam na GitHub (push), na Mac mini si ich automatizácia niekoľkokrát denne sťahuje (pull). Jediná otravná vec: keď pridám nový repozitár, musím ho dopísať do zoznamu a na Mac mini si ho stiahnuť.
Kľúče a heslá zostávajú na stroji
Pri sťahovaní na druhý počítač vám agent možno pripomenie, aby ste nedávali API kľúče do Gitu. Má pravdu. Kľúče patria do lokálneho súboru .env, ktorý Git ignoruje, alebo do správcu hesiel, napríklad Passwords na Macu alebo 1Password. Na každom počítači si ich nastavíte zvlášť. GitHub vám ich na druhý stroj neprenesie, a to je dobre.
Pravidlá pre prácu z dvoch počítačov
- Každý projekt má vlastný repozitár na GitHube. Na každom počítači je jeho kópia (clone) a medzi sebou si ich počítače nesynchronizujú cez cloudový disk.
- Pred prácou pull, po práci commit a push. Agentovi stačí napísať „stiahni zmeny“ a na konci „pošli to na GitHub“.
- Zoznam repozitárov v jednom README. Nový počítač si podľa neho nastaví agent sám.
- Druhý počítač dostane rozvrh. Mac mini si zmeny sťahuje niekoľkokrát denne cez naplánované úlohy v Codexe, nemusím na to myslieť.
- Heslá a kľúče na každom stroji zvlášť. Do Gitu nejdú.
Čo je Git, čo GitHub a ako s nimi pracovať, aj keď neprogramujete, sme rozpísali na blogu Aibility.
Časté otázky
Prečo sa mi rozbíja Git v iCloude?
Lebo iCloud posiela súbory zo skrytej zložky .git na druhý počítač po jednom a nevie, ktoré k sebe patria. Na pár sekúnd tak repozitár môže byť v polovičnom stave a Git ho vyhodnotí ako poškodený. Mne sa to stávalo, kým som na prenos zmien nezačal používať GitHub.
Môžem mať Git repozitár v Dropboxe?
Poznám človeka, ktorému to tak funguje bez problémov, Dropbox sa mu synchronizuje hneď. Ja by som na dva počítače aj tak použil GitHub: pred prácou pull, po práci push. Vtedy viete presne, ktorá verzia je posledná.
Ako synchronizovať prácu medzi MacBookom a Mac mini?
Každý projekt dajte do repozitára na GitHube a na oba počítače si ho stiahnite. Na hlavnom počítači zmeny posielate (push), na druhom si ich sťahujete (pull). Ja to mám tak, že Mac mini si zmeny ťahá niekoľkokrát denne sám.
Ako preniesť desiatky projektov na nový počítač?
Nechajte agenta napísať README so zoznamom všetkých repozitárov. Na novom počítači mu to README pošlite a napíšte „Nastav mi to“. Takto som na Mac mini dostal 32 repozitárov bez toho, aby som jeden stiahol ručne.
Na čo používam Mac mini s AI agentmi?
Hlavne na automatizácie z Codexu a Claude Code, ktoré majú bežať, aj keď mám notebook zavretý. A keď treba rýchlo opraviť chybu, pripojím sa k nemu na diaľku cez Codex, spustím tam chat a pracujem priamo na ňom.
Ako dostanem API kľúče na druhý počítač?
Cez Git nie. Uložte ich do správcu hesiel, napríklad Passwords alebo 1Password, alebo do lokálneho súboru .env, ktorý Git ignoruje. Na každom počítači ich nastavíte zvlášť.
Tom
Chceš to samé ve své práci?
Sedneme si na hodinu nad tím, co řešíš. 3 000 Kč bez DPH.