git clone repo для удаленной машины - PullRequest
2 голосов
/ 21 марта 2012

Как мы клонируем репо, находящееся в локальном каталоге, в удаленный каталог mchine

 machine1:/usr/rep/  -> clone this to machine2:/var/new_repo

Какая команда используется для этого

EDIT1 Я пытаюсь создатьклон с machine1

EDIT2 я также попробовал следующий git clone --bare user@anothersite.com/usr/repo / var / repo / не уверен, что это правильный способ сделать это

EDIT3 Это ошибка после выполнения команды в EDIT2

You have no controlling tty and no DISPLAY. Cannot read passphrase. fatal: The remote end hung up unexpectedly ================================================Initialized empty Git repository in /var/repo/ DEBUG: remote_exec loop:$stderr: Initialized empty Git repository in /var/repo/ DEBUG: create_repoX loop: $stdout: DEBUG: create_repoX loop: $stderr: Initialized empty Git repository in /var/repo/ DEBUG: create_repoX loop: $exit: 32768

Ответы [ 4 ]

2 голосов
/ 16 октября 2014

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

Я написал скрипт для простой обработки: git-pushclone

Описание: Скрипт клонирует репозиторий на удаленный сервер и делает этот новый репозиторий удаленным хранилище текущего. Протокол SSH используется.

Это реализует push-стиль клонирования, который необходим всякий раз, когда никто не хочет клонировать с удаленной машины. Примеры:

  1. Нет входящего доступа к локальному серверу: Когда разработка произошла на локальной машине, к которой никто не хочет предоставлять удаленный доступ, но желательно «опубликовать» разработку на сервере, с которого другие затем могут получить доступ.

  2. Общий вход на удаленный сервер: Если пользователь не имеет индивидуального доступа к удаленному серверу, но может войти в систему только как пользователь группы: в этом случае для запуска клона с удаленного сервера потребуется ввести учетные данные для локального сервера репозитория в групповой учетной записи сервера.

2 голосов
/ 21 марта 2012

Передайте команду в ssh и клонируйте репозиторий из machine2

ssh machine2 'git clone machine1:/path/to/repo /local/path/to/new/repo'

Вам нужен ssh-сервер на машине1. Однако вы можете даже просто скопировать всю папку, потому что в git хранилище - это просто папка, поэтому, копируя ее, вы скопируете хранилище.

scp -r /path/to/repo machine2:/var/new_repo
1 голос
/ 21 марта 2012

git clone ssh://user@anothersite.com/usr/repo /var/repo/

Я имею в виду ssh user@host "git clone ssh://user@anothersite.com/usr/repo /var/repo/"

0 голосов
/ 21 марта 2012

Ты не.Вы запускаете git clone на удаленной машине и клонируете с машины1.Если это невозможно, просто клонируйте его локально на компьютере 1 и скопируйте всю папку на компьютер 2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...