2010-01-19 4 views
16

Итак, у меня есть репозиторий git, который я вытащил в какой-то момент, и этот репозиторий находится на сервере. У меня нет доступа к исходному репозиторию, из которого я его вытащил. Как получить код с существующего сервера на другой компьютер?Репозиторий Git с одной машины на другую

EDIT 1: Так вот что это выглядит следующим образом:

  • COMPUTER A: репозиторий, который я первоначально извлеченный из. У меня нет доступа к этому больше.
  • КОМПЬЮТЕР B: Общий сервер, на котором я проверил код.
  • КОМПЬЮТЕР C: Локальный ноутбук.

Могу ли я просто сделать копию этого каталога без использования git или использовать git для клонирования, если от B до C?

+0

Wow - просто глядя на этот вопрос - веселый! –

ответ

5

Вы можете вытащить из сетевой папки или скопировать весь каталог (содержащий .git папку) accross к другому компьютеру.

3

Вы можете просто клонировать его с сервера, если у вас есть доступ к где клон сохраняется - мощность распределения;)

+0

Я не уверен, что у меня есть доступ к тому, где хранится клон. Не уверен, как я вытащил исходный код. –

+0

Я думаю, что Мэтт означает клонировать его с компьютера B («существующий сервер») на компьютер C («другой компьютер»). Компьютер A - это тот, к которому у вас нет доступа. git clone entry in manual: http://www.kernel.org/pub/software/scm/git/docs/git-clone.html –

+0

У вас есть клон на вашем компьютере локально? Вы можете клонировать от этого точно так же; репозитории содержат всю одну и ту же информацию, по модулю любых изменений с момента последнего вытягивания. –

0

Вы имеете в виду вы хотите клонировать его на другой компьютер?

Как насчет:

git clone ssh://myserver/path/to/myproject.git 
-2

Если я правильно понял вопрос, вы просто хотите перенести историю кода с B на C. Фактически, поскольку git использует децентцентричную модель, B имеет полную историю кода до последней точки синхронизации между B и A .

я могу думать о трех методов, если вы просто хотите передать историю кода от B до C:

  • прямого копирования/Rsync/и т.д.. просто скопируйте все файлы и структуры в \ B-machine \ code.git до \ C
  • git clone: ​​это лучший выбор, если C может получить доступ к B через http или ssh
  • git bundle: git поддерживает команду bundle и после расслоение, копировать/Rsync/FTP/Scp файл связки для C
2

вы можете работать с компьютером C:

git clone [email protected]_B:path/to/root/of/repository 

предполагая, что компьютер B имеет бегущую SSH сервер. В противном случае поддерживаются другие протоколы (файл: //, http: //, \\ computer_B (NetBios), ...)

31

Это достигается путем создания клона репозитория, находящегося на компьютере COMPUTER B, путем запуска команду git clone на COMPUTER C, где вы хотите создать клонированный репозиторий. Клонирование в git может быть выполнено с использованием нескольких протоколов, включая ssh, https, git; и для этого требуется соответствующая настройка для команды git clone.

Самый простой подход, чтобы запустить сервер GIT на компьютере B, используя следующую команду:

> git daemon 

Для получения справки по команде выше, запустите git help daemon

Затем поместите файл маркера в папке .git репозитория на COMPUTER B, чтобы предоставить разрешение на сервер git для запуска команды clone в этом репозитории. Это делается с помощью:

> cd <repository root>/.git 
> touch git-daemon-export-ok 

Теперь с терминала на компьютере C, выполните следующие команды:

> cd <folder in which to create the cloned repository> 
> git clone git://<ip address of COMPUTER B>/<full path of the repository on COMPUTER B> 

Это создаст клонированный репозиторий на КОМПЬЮТЕР С

+0

Он дает ошибку: доступ запрещен или репозиторий не экспортирован. –

+0

У меня получилось «соединение отказано», как я могу настроить git pemission в git repos? –

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