2015-06-03 19 views
8

La mia squadra e io lavoriamo su reti diverse. Non abbiamo una connessione Internet e non condividiamo la stessa rete. In questo modo, l'unico modo per trasferire file consiste nell'uso di thumbdrive.Come inviare commit a un repository Git remoto che è separato da un traferro?

L'unico modo in cui posso eseguire il commit al repository Git remoto è se utilizzo il computer del mio collega che ha accesso alla rete al server Git. Quali comandi devo eseguire affinché io possa recuperare, unire, poi spingere i miei commit sul suo computer, a parte il trasferimento dell'intera directory di lavoro?

Come, ad esempio, trasferire solo i commit che manca al server remoto.

MODIFICA: ho dimenticato di menzionare che la pen drive potrebbe essere cancellata periodicamente come parte delle misure di sicurezza. Il repo remoto su thumbdrive è comunque una buona idea!

+1

In aggiunta alle altre risposte, utilizzare fasci ** **; Vedi [Come usare git-bundle per mantenere lo sviluppo in sincrono?] (Http://stackoverflow.com/q/3635952/124319) e la risposta accettata. – coredump

risposta

2

È possibile impostare una git remota su un filesystem, quindi immagino che se si monta la tua pen drive sulla loro macchina si potrebbe aggiungere che si repo come un telecomando e unire nelle vostre modifiche

# Mount thumbdrive 
# Add a remote to the filesystem 
git remote add cardin_usb /Volumes/myusb # or whatever the usb path is 

# pull in the changes 
git fetch cardin_usb 
# merge any branches as per normal eg 
git checkout master 
git merge cardin_usb/my_feature 

Edit - appena letto voi voglio fare solo le modifiche. Si potrebbe generare patch se si conosce l'ultimo commettere il server remoto ha:

git format-patch lastServerCommit^..HEAD --stdout > new_changes.patch 

quindi trasferire questa via USB, e il collega possibile inviare.

+0

Sembra fattibile! Ma la thumbdrive potrebbe essere cancellata periodicamente, il che significherebbe la necessità di reinizializzare un repo remoto sulla pen drive. – Cardin

+1

Cosa ne pensi dell'esportazione di una patch con tutti i tuoi commit? Ho aggiornato la mia risposta per coprire questo – acanby

+0

Considera di provare i pacchetti prima di utilizzare le patch; le patch porteranno a grandi commit. – coredump

1

vostra strategia di base dovrebbe essere quello di clonare il repository sul computer locale sulla pen drive, impostare il repository remoto, e quindi spingere il repository dal computer del collega:

Sul computer:

git clone file:////192.168.1.1/yourbranch 
git remote add myorigin https://path/to/remote/repository 

Sul computer di vostro collega:

git pull myorigin/yourbranch (or git rebase myorigin/yourbranch) 
git push myorigin yourbranch 

Suppongo che l'indirizzo IP del computer del tuo collaboratore sia 192.168.1.1 sebbene sia necessario modificarlo (digitare ipconfig da un prompt dei comandi di Windows). Questo presuppone anche che tu abbia un file yourbranch.git sul tuo computer locale che sei in grado di clonare.

2

In aggiunta è possibile creare una rete ethernet tra le macchine e utilizzando lan è possibile eseguire l'ssh delle altre macchine e apportare le modifiche.

per es git aggiungere remoto xyz myuser @ laptop: /path/to/repo.git git pull xyz abc

+0

ethernet è interessante ... Ma per il mio caso probabilmente non sarebbe d'aiuto perché è una connessione diretta senza antivirus in mezzo - sicurezza IT lo solleverebbe come una preoccupazione. Continuerò comunque a votare la tua risposta, potrebbe comunque essere utile per gli altri! :) – Cardin

Problemi correlati