Git репозиторий с одной машины на другую - PullRequest
16 голосов
/ 19 января 2010

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

РЕДАКТИРОВАТЬ 1: Итак, вот как это выглядит:

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

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

Ответы [ 6 ]

31 голосов
/ 13 ноября 2012

Это достигается созданием клона репозитория, который находится на КОМПЬЮТЕРЕ B, с помощью команды git clone на КОМПЬЮТЕРЕ C, где вы хотите создать клонированный репозиторий.Клонирование в git может быть выполнено с использованием нескольких протоколов, включая ssh, https, git;и для этого требуется соответствующая настройка для успешного выполнения команды git clone.

Самый простой подход - запустить git-сервер на компьютере B с помощью этой команды:

> git daemon

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

Затем поместите файл маркера в папку .git хранилища на КОМПЬЮТЕРЕ B, чтобы предоставить разрешение серверу git на запуск команды клонирования в этом хранилище.Это делается с помощью:

> 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>

Это создаст клонированный репозиторий на компьютере C.

6 голосов
/ 19 января 2010

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

3 голосов
/ 19 января 2010

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

2 голосов
/ 07 июня 2012

Вы можете запустить с компьютера C:

git clone username@computer_B:path/to/root/of/repository

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

0 голосов
/ 18 апреля 2012

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

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

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

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

Как насчет:

git clone ssh://myserver/path/to/myproject.git 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...