Как я могу сделать свой локальный репозиторий доступным для git-pull?



у меня есть репозиторий рабочей копии, с которым я работал без проблем; источник для этого репозитория находится на GitHub.



Я хотел бы сделать мой репозиторий рабочей копии доступным в качестве источника для моей машины сборки (виртуальной машины на другом физическом хосте), так что коммиты, которые я делаю для своей рабочей копии, могут быть построены и протестированы на машине сборки без необходимости сначала проходить через GitHub. У меня уже есть сборка для репозитория GitHub, но я хотел бы, чтобы это было " золотым" репозиторий / сборка; т. е., если что-то идет туда, сборка против GitHub должна быть гарантирована.



Я посмотрел документацию по URL-адресам Git и увидел, что есть возможность использовать URL-адрес в форме git://host.xz[:port]/path/to/repo.git/ (см., например, git-clone documentation). Я хочу сделать это самым простым способом, с минимальной конфигурацией: я не хочу настраивать демон SSH или веб-сервер только для публикации этого на моей машине сборки.



Я запускаю Windows 7 x64 RC, у меня установлены MSysGit и TortoiseGit, и я открыл ПОРТ По умолчанию Git (9814) на брандмауэре. Пожалуйста, предположим, что рабочая копия РЕПО находится в D:Visual Studio ProjectsMyGitRepo и имя devbox. Машина сборки-Windows Server 2008 x64. Я пробовал следующую команду на машине сборки с соответствующим выводом:



D:Integration>git clone "git://devbox/D:Visual Studio ProjectsMyGitRepo"
Initialized empty Git repository in D:/Integration/MyGitRepo/.git/
devbox[0: 192.168.0.2]: errno=No error
fatal: unable to connect a socket (No error)


Я что-то пропустила?

726   6  

6 ответов:

существует пять возможностей для настройки репозитория для pull from:

  • локальная файловая система:git clone /path/to/repo или git clone file://path/to/repo. Минимум работы, если у вас есть сетевая файловая система, но не очень эффективное использование сети. (это почти точно решение, предложенное Йоаким Элофссона)
  • протоколы HTTP:git clone http://example.com/repo. Вам нужно любой веб-сервер, и Вам также нужно запустить (возможно, автоматически, с крючка)git-update-server-info для генерации информации, необходимой для извлечения/вытягивания через "немые" протоколы.
  • SSH:git clone ssh://example.com/srv/git/repo или git clone example.com:/srv/git/repo. Вам нужно настроить SSH-сервер (SSH-демон) и установить SSH на клиенте (например, PuTTY на MS Windows).
  • git-протокол:git clone git://example.com/repo. Вам нужно бежать git-daemon на сервере; см. документацию для деталей (вы можете запустить его как автономный процесс только для выборка, не обязательно Запуск от имени службы). git-демон является частью git.
  • bundle: вы создаете пакет на сервере с помощью git-bundle команда, перенесите ее на клиентскую машину любым способом (даже через USB) и клонируйте с помощью git clone file.bndl (если клон не работает, вы можете сделать "инит-мерзавец", "в Git дистанционного добавить" и "ГИТ выборки").

то, что вам не хватает в вашем примере, вероятно, работает Git-daemon на сервере. Это, или неправильная настройка ГИТ-демон.

к сожалению, я не могу помочь вам с запуском git-daemon в качестве службы на MS Windows. Однако в объявлении для последней версии msysGit нет ничего о том, что Git-daemon не работает.

в дополнение к ответам Якуба Нарембского есть еще один способ, более соответствующий вашему первоначальному вопросу. Вы можете клонировать из github, как обычно, а затем, когда вы хотите выполнить одноразовое вытягивание из своего локального РЕПО, просто сделайте это:

git pull /path/to/repo master

(вместо master можно поставить любое имя ветки.)

маршрут ssh работает хорошо, но требует удаленного сервера ssh. Если у вас есть платформа Windows, то Cygwin предоставляет рабочий ssh-сервер, который работает с Git, но вручную обновляет Git при использовании Cygwin Git (я написал некоторые подсказки на http://alecthegeek.wordpress.com/2009/01/21/top-tip-upgrade-git-on-cygwin/).

недавно я изменил один из моих проектов git, чтобы реплицировать себя на HTTP-сервер с помощью sitecopy для фактической загрузки файлов.

Это довольно легко, просто использовать git update-server-info затем зеркало .каталог git для некоторого каталога http-доступа на вашем сервере. Я использовал ' проект.ГИТ', который довольно распространен.

Git pull from http://site/project-git работает как чемпион, и мне не нужно ничего иметь на сервере, кроме FTP-доступа, хотя sitecopy поддерживает и webdav тоже.

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

если у вас есть путь как

C:\Project\

и ты git init уже, так что у вас тоже есть папка

C:\Project\.git\

теперь вы делаете новую папку

C:\.git\

заходим в эту папку и запустите git clone --bare ..\Project (голой важно),
возвращайся к своему

Если ваш удаленный хост находится в той же сети windows, то есть вы можете получить к нему доступ как \remotehost, затем вы можете сопоставить сетевой диск в проводнике, скажем z: --> \remotehost\repodir, после этого вы можете использовать 'git clone /z/myproject' для клонирования проекта

Comments

    Ничего не найдено.