/ / Come lavorare con git e un semi-bare-repo mobile? - idiota

Come lavorare con git e un mobile semi-bare-repo? - idiota

Ho un repository git centrale sul mio server privato (il --spoglio uno). Clonare e lavorare con questo è perfetto. Quel server non è raggiungibile dal web! L'accesso al web non è un'opzione per i miei repository.

Quando esco dall'ufficio, copio la mia fontecodice sulla mia chiavetta USB e copia di nuovo il contenuto sul PC esterno (perché lavorare direttamente sulla chiavetta USB sarebbe rallentare). Dopo che il lavoro è stato svolto su quel PC, il codice deve essere copiato nuovamente sul bastone e successivamente nel repository principale centrale.

Quello a cui penso è quale sarebbe il miglior flusso di lavoro nella mia situazione? Forse la chiavetta USB dovrebbe essere a --spoglio anche repository? Il pc straniero si impegnerebbe per questo. Ma è possibile che i cambiamenti dal repository dello stick possano essere uniti al repository centrale senza alcun comportamento errato?

Spero di poter spiegare il mio ambiente abbastanza bene.

Grazie per l'aiuto!

risposte:

0 per risposta № 1

Sì, l'utilizzo dell'unità USB come repository nudo èsicuramente una soluzione praticabile, e abbastanza elegante se me lo chiedi. Puoi quindi spingerlo e recuperarlo, proprio come con il tuo repository centrale.

Git ha un supporto abbastanza buono per piùrepository remoti (in senso lato) ("telecomandi"), quindi sul PC dell'ufficio è possibile aggiungere semplicemente l'unità USB come secondo telecomando. A seconda del tuo utilizzo, a volte potresti dover usare le fusioni per sincronizzare nuovamente i due diversi telecomandi, ma questo non è diverso dalle normali fusioni. Almeno non fa differenza per Git.

Ecco un esempio condensato:

# setup bare repo on USB drive, e.g. using "git clone --bare"
# on office PC
(work work work)
git remote add stick /path/to/repo/on/stick
git push stick <branches> # can use --all
# elsewhere
git clone /path/to/repo/on/stick
(work work work)
git push stick <branches>
# back in office
git fetch stick
(compare diffs or whatever you like)
git merge stick/mybranch
# etc.

PS. ovviamente puoi anche usare rebase se preferisci e conosci il tuo modo di aggirarlo.