Как я могу 'git clone' с другой машины? - PullRequest
47 голосов
/ 11 мая 2010

На одной машине (IP-адрес 192.168.1.2) я создаю Git-репозиторий с помощью

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

И у меня есть другая машина в той же сети Wi-Fi. Как я могу получить клон с другой машины?

Ответы [ 3 ]

78 голосов
/ 11 мая 2010

Вам нужно использовать git + ssh URL для выполнения клонирования Git:

git clone git+ssh://hap@192.168.1.2/~/working

Чтобы разбить его:

  • git+ssh сообщает Git, что вы хотите использовать ssh для подключения к хранилищу Git.
  • hap - ваше имя пользователя (я полагаю, основываясь на домашнем каталоге в вашем вопросе).
  • 192.168.1.2 - это машина, к которой вы хотите подключиться
  • ~/working - это путь к вашему репозиторию Git на удаленной машине (поэтому ~ - это ваш домашний каталог)

Несколько других замечаний:

  • На компьютере с репозиторием Git должен быть включен ssh-сервер
  • Вам нужно будет знать пароль для пользователя hap
2 голосов
/ 11 мая 2010

Я предполагаю, что на обеих машинах вы установили Git.

Теперь то, что вы делаете, зависит от того, какие службы вы установили, то есть от того, как вы можете подключиться с одной машины на другую.

Самый простой случай, когда у вас работает sshd на машине, которую вы хотите клонировать из , и вы можете ssh с машины, которую хотите клонировать до , на машину Вы хотите клонировать из.

Если вы можете сделать

ssh 192.168.1.2

(или если у вас другое имя пользователя на другом компьютере, ssh user@192.168.1.2), тогда вы сможете клонировать через SSH, как Джозия написал :

git clone git+ssh://hap@192.168.1.2/~/working

Если вы хотите продолжить выборку / передачу между компьютерами, вам следует настроить аутентификацию с открытым ключом для SSH, чтобы не приходилось вводить пароль при каждой выборке.


Если у вас не установлен sshd на исходном компьютере, вы можете клонировать, используя «умный» протокол HTTP, если у вас установлен веб-сервер и вы можете установить сценарии CGI (см. git-http-backend manpage), или вы можете клонировать, используя «тупой» протокол HTTP, если у вас установлен веб-сервер, но вы можете обслуживать только статические файлы (сначала вам нужно будет запустить git update-server-info в исходном хранилище), или вы можете клонировать, используя rsync если он у вас установлен.

В качестве крайней меры вы можете использовать " git bundle " для создания архива, который вы можете перемещать, например, с помощью USB-накопителя и клонирования из него.

0 голосов
/ 24 августа 2017

Я думаю, что люди ищут этот ответ. Следующая команда в терминале войдет на другой компьютер и клонирует существующее хранилище. В текущем пути расположения терминала (поэтому cd до предпочтительного расположения сначала).

git clone username@12.345.67.891:/home/path/to/repo.git

На случай, если у вас сейчас нет IP-адреса. Используйте ping для определения ip вашего сервера. После IP-адреса не забудьте использовать :, а затем написать абсолютный путь.

...