У меня есть репозиторий рабочих копий, с которым я работал без проблем; происхождение этого репозитория находится на GitHub.
Я хотел бы сделать свой репозиторий рабочей копии доступным в качестве источника для моей машины сборки (виртуальная машина на другом физическом хосте), чтобы коммиты, которые я делаю для моей рабочей копии, можно было построить и протестировать на машине сборки без необходимости проходить через Сначала GitHub. У меня уже есть сборка для репозитория GitHub, но я бы хотел, чтобы это был «золотой» репозиторий / сборка; то есть, если что-то там происходит, сборка GitHub должна гарантированно пройти.
Я просмотрел документацию по URL-адресам Git и увидел, что есть возможность использовать URL-адрес в форме git://host.xz[:port]/path/to/repo.git/
(см., Например, документацию по git-clone ). Я хочу сделать это самым простым способом с минимальной конфигурацией: я не хочу, чтобы мне приходилось настраивать демон SSH или веб-сервер только для публикации этого на моей машине сборки.
Я использую Windows 7 x64 RC, у меня установлены MSysGit и TortoiseGit, и я открыл порт Git по умолчанию (9814) на брандмауэре. Предположим, репозиторий рабочей копии находится по адресу D:\Visual Studio Projects\MyGitRepo
, а имя хоста - devbox
. Машина сборки - это Windows Server 2008 x64. Я пробовал следующую команду на машине сборки с соответствующим выводом:
D:\Integration>git clone "git://devbox/D:\Visual Studio Projects\MyGitRepo"
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)
Я что-то упускаю?
источник
Ответы:
Существует пять возможностей для создания репозитория для извлечения:
git clone /path/to/repo
илиgit clone file://path/to/repo
. Минимум работы, если у вас сетевая файловая система, но не очень эффективное использование сети. (Это почти в точности решение, предложенное Йоакимом Элофссоном )git clone http://example.com/repo
. Вам нужен любой веб-сервер, и вам также необходимо запустить (возможно, автоматически, из ловушки) git-update-server-info, чтобы сгенерировать информацию, необходимую для извлечения / извлечения по «тупым» протоколам.git clone ssh://example.com/srv/git/repo
илиgit clone example.com:/srv/git/repo
. Вам необходимо настроить SSH-сервер (демон SSH) и установить SSH на клиенте (например, PuTTY в MS Windows).git clone git://example.com/repo
. Вам нужно запустить git-daemon на сервере; подробности см. в документации (вы можете запустить его как отдельный процесс только для выборки, не обязательно запускать как службу). git-daemon является частью git.git clone file.bndl
(если клон не работает, вы можете выполнить "git init", "git remote add "и" git fetch ").То, что вам не хватает в вашем примере, вероятно, запускает git-daemon на сервере. Это или неправильная настройка git-daemon.
К сожалению, я не могу помочь вам запустить git-daemon как службу в MS Windows. Однако в последней версии msysGit ничего не говорится о том, что git-daemon не работает.
источник
Помимо ответов Якуба Наребски, есть еще один способ, более соответствующий вашему первоначальному вопросу. Вы можете клонировать из github, как обычно, тогда, когда вы хотите выполнить одноразовое извлечение из локального репо, просто сделайте следующее:
(вместо master можно указать любое имя ветки.)
источник
..
в <path / to / repo> не работают; вместо этого используйте полный путь.Маршрут 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-доступный каталог на вашем сервере. Я использовал 'project.git', что довольно часто.Git pull с http: // site / project-git работает как чемпион, и мне не нужно иметь ничего на сервере, кроме доступа по FTP, хотя sitecopy также поддерживает webdav.
Однако я не рекомендую использовать sitecopy, так как он не поддерживает синхронизацию нескольких компьютеров. В моем проекте репозиторий HTTP доступен только для чтения, а золотые обновления поступают только с одной машины, поэтому он работает достаточно хорошо.
источник
Если у вас есть путь вроде
и вы это
git init
уже сделали , так что у вас также есть папкаТеперь вы создаете новую папку
Зайдите в эту папку и запустите
git clone --bare ..\Project
( голый важен),вернитесь в свою
C:\Project\
папку и выполнитеgit remote add-url local ..\.git\Project
.Теперь просто делай
git add -A
,git commit -m "HelloWorld"
иgit push local master
.Вы можете предоставить общий доступ к
Project
папке, подключить ееZ:
и сделатьgit clone Z:\Project
- теперь вы можете использовать ееgit pull origin master
и передаватьgit push origin master
изменения с одного компьютера на другой.источник
Если ваш удаленный хост находится в той же сети Windows, то есть вы можете получить к нему доступ как \ remotehost, тогда вы можете подключить сетевой диск в проводнике, скажем, z: -> \ remotehost \ repodir, после этого вы можете использовать 'git clone / z / myproject 'для клонирования проекта
источник