web-dev-qa-db-fra.com

Comment puis-je extraire du référentiel d'un autre ordinateur dans Git?

Par exemple, j'ai cloné le référentiel Origin sur deux ordinateurs. Ensuite, j'effectue quelques modifications et m'engage dans le référentiel local de l'ordinateur A. Comment puis-je maintenant extraire ces modifications vers l'ordinateur B? Les ordinateurs A et B sont connectés à un réseau. 

Ce que je recherche sera l’équivalent de la création manuelle d’un patch et de son envoi, que je pourrai appliquer à ma copie de travail/référentiel local. 

73
jeffreyveon

Si la machine à partir de laquelle vous voulez extraire est accessible via ssh, vous pouvez ajouter le référentiel sur celui-ci en tant que télécommande via ssh, puis en extraire comme n'importe quelle autre télécommande:

$ git remote add repo_b username@Host:path/to/repository.git
$ git pull repo_b master

(Vous pouvez ignorer l'étape consistant à ajouter une télécommande et spécifier simplement l'URL complète dans la commande git pull au lieu d'un nom distant. Toutefois, si vous allez extraire régulièrement du référentiel, son ajout en tant que télécommande permettra d'économiser beaucoup de dactylographie)

97
Amber

Regardez git pull --help

Cela donnerait quelque chose comme git pull /my/other/repository

34
Antoine Pelisse

Vous pouvez configurer un serveur réel avec git daemon . Sinon, vous pouvez utiliser git bundle , qui regroupe la représentation interne de git dans un fichier qui peut être dissocié avec git pull à l’autre bout.

Par exemple. à partir de la documentation git, regroupant tout:

git bundle create file.bundle master

Ensuite, à l'autre bout, vous pouvez faire quelque chose comme:

git pull file.bundle HEAD
10
Matthew Flaschen

Si vous pouvez vous connecter à l'ordinateur B par ssh, vous pouvez utiliser:

git clone user@Host:/path/to/repo

Cela permettra le suivi à distance via cette connexion ssh, et vous permettra d’utiliser git pull/push.

7
Benoit Courtine

Cela a fonctionné pour moi pour un référentiel local avec un autre ordinateur:

git remote add Origin_username [email protected]:/home/username/dev/project/main/.git/

git pull Origin_username master

ou

git pull Origin_username some_branch
2
McQuade

Un peu trop tard, mais pour couronner le tout et prolonger la réponse d’Antoine Pelisse, vous pouvez aussi extraire de ssh Host qui a le même dépôt avec deux autres commits, sans ajouter de remote à votre configuration:

git pull user@Host:/path/to/repo  # while in the local repo folder

Soyons clairs. L’une des utilisations possibles de cela est quand vous avez deux hôtes (A et B) qui ont cloné le même référentiel à partir d’un remote , et que vous avez commis quelques modifications sur l’hôte A et que Poussez-les vers remote (encore), mais voulez plutôt extraire ces commits de l'hôte B. La commande ci-dessus avec synchroniser votre dépôt sans pousser vers remote .

0
Alex

Je suis venu avec

git clone /path/to/local/repository
0
Vlad T.