web-dev-qa-db-fra.com

Comment puis-je «git cloner» à partir d'une autre machine?

Sur une machine (adresse IP 192.168.1.2), je crée un référentiel Git en

$ cd /home/hap/working
$ git init
$ (add some files)
$ git add .
$ git commit -m 'Initial commit'

Et j'ai une autre machine sur le même réseau Wi-Fi. Comment puis-je obtenir un clone de l'autre machine?

47
hap497

Vous devez utiliser un git + ssh URL pour effectuer le clonage Git:

git clone git+ssh://[email protected]/~/working

Pour le décomposer:

  • git+ssh indique à Git que vous souhaitez utiliser ssh pour vous connecter au référentiel Git.
  • hap est votre nom d'utilisateur (je suppose sur la base du répertoire personnel dans votre question).
  • 192.168.1.2 est la machine à laquelle vous souhaitez vous connecter
  • ~/working est le chemin d'accès à votre référentiel Git sur la machine distante (donc ~ est votre répertoire personnel)

Quelques autres choses à noter:

  • Vous devez avoir un serveur ssh activé sur la machine avec le référentiel Git
  • Vous aurez besoin de connaître le mot de passe de l'utilisateur hap
80
Josiah

Je suppose que sur les deux machines, vous avez installé Git.

Maintenant, ce que vous faites dépend des services que vous avez installés, c'est-à-dire de la façon dont vous pouvez vous connecter d'une machine à l'autre.

Le cas le plus simple est lorsque vous avez sshd en cours d'exécution sur la machine que vous souhaitez cloner à partir de , et vous pouvez ssh à partir de la machine que vous voulez pour cloner vers vers la machine à partir de laquelle vous souhaitez cloner.

Si tu peux le faire

ssh 192.168.1.2

(ou si vous avez un nom d'utilisateur différent sur l'autre ordinateur, ssh [email protected]), alors vous devriez pouvoir cloner via SSH, comme Josiah a écrit :

git clone git+ssh://[email protected]/~/working

Si vous souhaitez continuer à extraire/pousser entre les machines, vous devez configurer l'authentification par clé publique pour SSH, pour ne pas avoir à fournir de mot de passe à chaque extraction.


Si vous n'avez pas installé sshd sur la machine source, vous pouvez cloner en utilisant le protocole HTTP "intelligent" si vous avez un serveur web installé et pouvez installer des scripts CGI (voir git-http-backend page de manuel) , ou vous pouvez cloner à l'aide du protocole HTTP "stupide" si vous avez installé un serveur Web, mais ne pouvez servir que des fichiers statiques (vous devez exécuter git update-server-info dans le référentiel source en premier), ou vous pouvez cloner en utilisant rsync si vous l'avez installé.

En dernier recours, vous pouvez utiliser " git bundle " pour créer une archive que vous pouvez déplacer, par exemple, à l'aide d'une clé USB et en cloner.

2
Jakub Narębski

Je pense que les gens recherchent cette réponse. La commande suivante dans le terminal se connecte à l'autre ordinateur et clone un dépôt existant. Dans l'emplacement actuel du chemin d'accès du terminal (donc cd à l'emplacement préféré en premier).

git clone [email protected]:/home/path/to/repo.git

Dans le cas où vous n'avez pas maintenant l'adresse IP. Utilisez ping pour déterminer l'ip de votre serveur. Après l'adresse IP, n'oubliez pas d'utiliser l'utilisation d'un : puis écrivez le chemin absolu.

0
Michiel