Come faccio a tirare dal repository di un altro computer in Git?
Domanda
Per esempio, ho clonato il repository origine su due computer. Poi, vado avanti e fare alcuni cambiamenti e impegno al repository locale del computer di A. Come faccio ora tirare queste modifiche al computer B? Sia il computer A e B sono collegati a una rete.
Quello che sto cercando sarà l'equivalente di qualcuno creazione manuale di una patch e inviarlo a me, che posso applicare al mio lavoro di copia / repo locale.
Soluzione
Se la macchina si vuole tirare da è accessibile via ssh
, è possibile aggiungere il repository su di essa come un remoto via SSH, e poi tirare da essa come si farebbe con qualsiasi distanza:
$ git remote add repo_b username@host:path/to/repository.git
$ git pull repo_b master
(è possibile saltare la fase di aggiunta di un telecomando e basta specificare l'URL completo nel comando git pull
invece di un nome a distanza, ma se si sta andando ad essere tirando dal repository su base regolare, aggiungendo come a distanza vi farà risparmiare un sacco di battitura.)
Altri suggerimenti
Date un'occhiata al git pull --help
Questo darebbe qualcosa di simile git pull /my/other/repository
È possibile impostare un server vero e proprio con git daemon . In caso contrario, è possibile utilizzare git fascio , che impacchetta rappresentazione interna di git in un file che può essere disaggregato con git pull
all'altra estremità.
es. Dalla documentazione git, bundling tutto:
git bundle create file.bundle master
Poi, dall'altra parte, si può fare qualcosa di simile:
git pull file.bundle HEAD
Se è possibile connettersi al computer B da ssh, è possibile utilizzare:
git clone user@host:/path/to/repo
Essa consentirà a distanza di monitoraggio attraverso questa connessione SSH, e consentono di utilizzare git pull / push.
Ha funzionato per me per un repository locale con un altro computer:
git remote add origin_username username@10.0.0.2:/home/username/dev/project/main/.git/
git pull origin_username master
o
git pull origin_username some_branch
Sono venuto su con
git clone /path/to/local/repository
Un po 'troppo tardi, ma per tutti la pena e di estendere la risposta Antoine Pelisse, si può anche tirare da ssh host che ha lo stesso repo con coppia di più impegna in esso, senza l'aggiunta di un a distanza per il vostro config:
git pull user@host:/path/to/repo # while in the local repo folder
Giusto per essere chiari - uno dei possibili utilizzi di questo è quando si hanno due host (A e B), che ha clonato la stessa pronti contro termine da un a distanza , e hai commesso alcuni cambiamenti su ospite a e non vogliono spingerli a a distanza (ancora), ma invece vuole tirare quei impegna da ospite B. Il comando di cui sopra con sincronizzare i pronti contro termine senza spingere a a distanza .