2012-03-21 2 views
2

Как мы клонировать репозиторий, который находится в локальном каталоге на удаленный каталог Mchineмерзавца клон репо на удаленную машину

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

, что является фактической командой для этого

EDIT1 Я пытаюсь для создания клона из mACHINE1

EDIT2 Я также попытался следующий GIT клон --bare [email protected]/usr/repo/вар/репо/не уверен whther его правильный путь к сделать это

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

+0

Как вы предоставляете доступ? Push (сервер удален) или pull (сервер локальный)? – Reactormonk

ответ

0

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

+0

: Я пробовал следующее, но, похоже, не работает, любые идеи, почему ssh site.com «git clone --bare https: //[email protected]/usr/repo//var/repo /» – Rajeev

+0

Какая ошибка сообщение вы получаете? –

+0

Команда запрашивает пароль и просто выходит – Rajeev

2

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

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

Вам нужен SSH-сервер на machine1. Однако вы можете просто скопировать всю папку, потому что в git репозиторий - это просто папка, копируя ее, скопирует репозиторий.

scp -r /path/to/repo machine2:/var/new_repo 
2

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

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

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

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

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

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

Смежные вопросы