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.
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)
Regardez git pull --help
Cela donnerait quelque chose comme git pull /my/other/repository
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
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.
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
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 .
Je suis venu avec
git clone /path/to/local/repository