Хостинг Git Repository в Windows - PullRequest
       25

Хостинг Git Repository в Windows

107 голосов
/ 24 октября 2008

Есть ли в настоящее время способ размещения общего хранилища Git в Windows? Я понимаю, что вы можете настроить службу Git в Linux с помощью:

git daemon

Есть ли собственный вариант Windows, если не считать общих папок, для размещения службы Git?

EDIT: В настоящее время я использую Cygwin для установки git для хранения и работы с git-репозиториями в Windows, но я бы хотел сделать следующий шаг - разместить репозиторий со службой, которая может предоставлять доступ другим.

Ответы [ 16 ]

74 голосов
/ 16 февраля 2010

Вот несколько шагов, которые вы можете выполнить для запуска демона git под Windows:

(Предварительные условия: установка Cygwin по умолчанию и клиент git, поддерживающий демон git)

Шаг 1 : открыть оболочку bash

Шаг 2 : В каталоге / cygdrive / c / cygwin64 / usr / local / bin / создайте файл с именем "gitd" со следующим содержимым:

#!/bin/bash

/usr/bin/git daemon --reuseaddr --base-path=/git --export-all --verbose --enable=receive-pack

Шаг 3 : Запустите следующую команду cygrunsrv из командной строки с повышенными правами (например, от имени администратора), чтобы установить сценарий как службу (Примечание: предполагается, что Cygwin установлен в C: \ cygwin64):

cygrunsrv   --install gitd                          \
            --path c:/cygwin64/bin/bash.exe         \
            --args c:/cygwin64/usr/local/bin/gitd   \
            --desc "Git Daemon"                     \
            --neverexits                            \
            --shutdown

Шаг 4 : Запустите следующую команду, чтобы запустить службу:

cygrunsrv --start gitd

Вы сделали. Если вы хотите проверить это, вот быстрый и грязный скрипт, который показывает, что вы можете перенести git-протокол на локальный компьютер:

#!/bin/bash

echo "Creating main git repo ..."
mkdir -p /git/testapp.git
cd /git/testapp.git
git init --bare
touch git-daemon-export-ok
echo "Creating local repo ..."
cd
mkdir testapp
cd testapp
git init
echo "Creating test file ..."
touch testfile
git add -A
git commit -m 'Test message'
echo "Pushing master to main repo ..."
git push git://localhost/testapp.git master
16 голосов
/ 06 февраля 2012

GitStack может быть вашим лучшим выбором. В настоящее время она бесплатна (до 2 пользователей) и с открытым исходным кодом на момент написания.

12 голосов
/ 03 июня 2011

Вот выделенный сервер Git для Windows: https://github.com/jakubgarfield/Bonobo-Git-Server/wiki

9 голосов
/ 24 октября 2008

Если вы работаете в среде Windows, рассматривали ли вы Mercurial ? Это распределенная система управления версиями, подобная Git, но гораздо более удобная и простая интеграция с Windows.

7 голосов
/ 10 марта 2011

Установка CygWin является излишним, прочитайте этот учебник о том, как сделать это быстрее и естественнее:

http://code.google.com/p/tortoisegit/wiki/HOWTO_CentralServerWindowsXP

7 голосов
/ 17 ноября 2010

Если вы получили ошибку cygrunsrv: Error starting a service: QueryServiceStatus: Win32 error 1062: The service has not been started. после выполнения команды:

cygrunsrv --start gitd

это означает, что вы не создали папку 'base-path'.

Создание папки '/ git' и повторный запуск команды исправят это.

5 голосов
/ 18 февраля 2009

В настоящее время я использую ssh-демон cygwin для Windows , чтобы обслуживать и разрешать удаленный доступ к моему репо. Он работает довольно хорошо, я полностью контролирую, кто получает доступ к моему репо по их ssh-сертификатам, а производительность падает, даже по удаленным каналам WAN и VPN.

Другим решением является использование Gitosis . Это инструмент, который делает хостинг репо намного проще.

4 голосов
/ 31 октября 2012

Диспетчер SCM

  • Легкий http-сервер для репозиториев Git, Mercurial, Subversion из коробки (требуется только Java)
  • Веб-интерфейс для управления пользователями, ACL, репо
4 голосов
/ 26 февраля 2011

Теперь msysGit поддерживает git daemon! Работает нормально (по крайней мере для меня). Я попытаюсь заставить его работать как сервис ...

4 голосов
/ 07 февраля 2009

Вам не нужно размещать службу, вы также можете создать общий репозиторий на общем диске. Просто создайте голое хранилище. Вы можете клонировать существующее репо в общее, используя: "git clone --bare --shared [source] [dest]". Вы также можете запустить новый репозиторий, используя "git init --bare --shared = all".

Хенк

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...