Ako synchronizovať súbory medzi dvoma lokálnymi počítačmi pomocou Git
Pri práci na diaľku často prepínam medzi stolovým počítačom doma a notebookom, keď som vonku. To je také jednoduché; teoreticky by som mohol pracovať kdekoľvek, na akomkoľvek počítači, len s niekoľkými základnými požiadavkami.
Jedna z týchto potrieb je však vážna prekážka: musím mať pri sebe svoju aktuálnu prácu. Každý predchádzajúci pokus toto vyriešiť bol nedokonalý, ale Git bol odpoveďou, ktorú som hľadal.
Prečo používať Git na synchronizáciu lokálnych súborov?
OK, existujú alternatívy: zdieľané disky, ssh, rsync a podobne. Tak prečo v tomto konkrétnom prípade používať Git?
Napríklad s Gitom som veľmi dobre oboznámený. Používam ho každý deň, nakonfiguroval som ho tak, aby pracoval podľa mojich predstáv, a dokonca trochu rozumiem tomu, ako funguje! Git je teraz overený nástroj s nespočetnými aplikáciami a príkazmi, ktoré ho podporujú. V podstate je to de facto štandard pre správu verzií a všeobecne svoju úlohu plní dobre, napriek svojej zložitosti.
Tiež plánujem používať správu verzií s týmito súbormi, aby som mal riadnu zálohu a históriu svojej práce. Git je zrejmá voľba, takže ak ho môžem využiť na synchronizáciu súborov medzi zariadeniami, vyriešil som tak dve veci naraz.
Občas sa uchýlim k Google Drivu, aby som rýchlo niečo umiestnil do cloudu, ale pôsobí to krehko a vyžaduje to viac úsilia, než by malo. To isté platí aj o USB kľúčoch, ktoré nie sú vždy spoľahlivé, alebo externých diskoch: príliš veľa manipulácie pre to, čo by mala byť okamžitá úloha.
Prečo by ste sa mali vyhýbať GitHubu?
Jedno možné riešenie tohto problému by bolo jednoducho hosťovať repozitár na GitHub. To vám poskytuje centralizované miesto, ktoré je vždy dostupné (no, väčšinu času), pokiaľ máte prístup na internet.
Tu sú však dve menšie problémy. Prvým je to prestoj, na ktorý som naznačil, že by mohol byť problémom, hoci nie je taký bežný, aby som sa naň úplne spoliehal pri rozhodovaní. Ale hostovanie niektorých z týchto súborov na serveri tretej strany ma robí nervóznym: časť tejto práce môže byť dôverná, a čo ak náhodou nahodím heslo alebo iné citlivé údaje?
Iste, mohol by som pracovať s privátnym repozitárom, ale všetko toto sa zdá zbytočné: prečo zapájať vzdialenú tretia stranu, pokiaľ to naozaj nepotrebujem? Nie je tak, že by som využíval niektoré z kolaboratívnych alebo projektovo-riadiacich funkcií platformy GitHub, takže to pôsobí trochu nadbytočne. Určite musí existovať lepší spôsob.
Ako udržiavať súbory v synchronizácii pomocou gitu
A existuje aj lepší spôsob: lokálny Git. Synchronizácia súborov medzi počítačmi je predsa súčasťou základnej funkčnosti Git, a robiť to cez lokálnu sieť nie je naozaj vôbec odlišné od toho, keď sa to robí cez internet.
Tento systém by ste mali byť schopní rýchlo nastaviť; pozostáva len z niekoľkých samostatných častí. Každá z nich je však jednoduchá a keď to urobíte raz, synchronizácia je ľahká.
Povoliť vzdialené prihlásenie
Prvou vecou, ktorú budete musieť nastaviť, je SSH prístup. macOS to nazýva „Vzdialené prihlásenie“ a budete musieť použiť akýkoľvek mechanizmus, ktorý váš operačný systém poskytuje, aby ste to urobili rovnako. Robiť to stačí len na jednom počítači, ktorý bude hostiť repozitár.
Zmena tohto nastavenia vám poskytne prístup cez príkazový riadok, keď spustíte nasledujúci príkaz:
ssh username@ip-address
Nastaviť statické IP adresy
Toto je ďalší krok, ktorý bude závisieť od vášho prostredia. V skutočnosti, ak už máte nastavenú lokálnu sieť, môžete sa mu úplne vyhnúť a namiesto toho použiť DNS na konfiguráciu vášho nastavenia Git.
Začínal som však od nuly a chcel som si dať čo najmenej práce. Aby som proces nezbytočne nezkomplikoval, rozhodol som sa použiť IP adresy. Jediný problém je, že budete potrebovať konzistentné lokálne IP, ale rýchle nastavenie routera by malo stačiť.
Opäť, toto naozaj potrebujete urobiť iba na počítači, kde je uložený repozitár, ale neškodí to nastaviť aj na vašich ostatných zariadeniach, keď už pri tom ste.
Vytvoriť SSH kľúče
Ak nechcete zadávať svoje prihlasovacie údaje zakaždým, keď synchronizujete úložisko, odporúčam nastaviť SSH kľúč na každom zariadení. Je to jednorazové nastavenie, ktoré vám potom umožní synchronizovať súbory do a z každého počítača, na ktorom ho použijete.
Začnite vytvorením páru kľúčov pomocou programu ssh-keygen:
ssh-keygen
Budete vyzvaní na zadanie názvu súboru a voliteľného hesla, ktoré môžete použiť z bezpečnostných dôvodov. Keď vygenerujete kľúč, nahrajte ho na hostiteľský počítač pomocou tohto príkazu:
ssh-copy-id -i /path/to/key/file username@ip-address
V tomto bode odporúčam skontrolovať, či všetko funguje pomocou:
ssh username@ip-address
Nastaviť prázdne úložisko
Zistil som, že toto je najčistejšie riešenie, ktoré sa ľahko nastavuje. Najprv si budete musieť vybrať počítač, na ktorom budete uložiť repozitár: nie pracovný strom, ale holý Git repozitár, ktorý môže slúžiť ako centrálna synchronizácia medzi klientmi.
Vyberte vhodný adresár (ideálne taký, ktorý sa nebude presúvať) a v jeho rámci spustite:
git init --bare
Prázdne úložisko obsahuje súbory metadát git—ako HEAD a config—v jeho koreňovom adresári namiesto v adresári .git, ako to má pracovný strom.
Tento článok sa zaoberá nastavením repozitára od začiatku. Ak chcete to isté urobiť s existujúcim repozitárom, pozrite si git clone --bare.
Naklonujte repozitár na každý počítač
Na každom počítači, na ktorom chcete zdieľať súbory, zadajte adresár podľa vášho výberu a potom spustite príkaz na sklonovanie repozitára do nového pracovného stromu. Na počítači, ktorý už hostuje holý repozitár, môžete použiť lokálnu cestu, napr.:
git clone /path/to/repo
Na akomkoľvek inom počítači budete musieť použiť formát login@host:
git clone username@ip-address:path-to-repo
Napríklad, vo svojej lokálnej konfigurácii som spustil tento príkaz:
git clone bobby@192.168.1.196:/Users/bobby/src/repos/bare/myproject
Týmto sa repozitár skopíruje do pracovného stromu, podobne ako pri klonovaní repozitára z GitHubu.
Pracujte ako obvykle (pridať, potvrdiť a odoslať)
Teraz môžete pracovať ako zvyčajne. Upraviť svoje súbory, uložiť ich a—občas—zaviesť ich do gitu:
git add .
git commit -m 'my latest work'
git pushNezabudnite spustiť git push, keď skončíte prácu na deň, alebo ak sa chystáte odísť a pracovať inde. Keď začnete každý deň pracovať, nezabudnite spustiť git pull, aby ste získali najnovšie aktualizácie na akomkoľvek zariadení, ktoré používate.
Prihláste sa na odber noviniek a získajte praktické tipy na synchronizáciu Git
Prihláste sa na odber noviniek a získajte praktické tipy na synchronizáciu Git
Tým, že sa prihlásite na odber, súhlasíte s prijímaním newslettera a marketingových e-mailov a akceptujete Podmienky používania a Zásady ochrany osobných údajov spoločnosti Valnet. Odber môžete kedykoľvek zrušiť.
Samozrejme, tento každodenný proces môžete preskočiť, ak viete, že ste pracovali len na tom istom stroji, ale je dobré si vybudovať návyk, aby ste vždy mali k dispozícii najnovšie výsledky práce.
Ďalšou potenciálnou možnosťou je automatizovať proces git pomocou niečoho ako cron. To by udržalo git úplne na pozadí, takže by ste sa mohli sústrediť na ukladanie súborov a svoju prácu. Automatizovaný prístup je oveľa jednoduchší, ak máte pevný harmonogram a ak máte počítač neustále zapnutý.




