В настоящее время существует способ размещения общего хранилища Git в Windows? Я понимаю, что вы можете настроить службу Git в Linux с помощью:
git daemon
Есть ли встроенная опция Windows, не имеющая общих папок, для размещения службы Git?
EDIT: В настоящее время я использую установку cygwin для Git для хранения и работы с репозиториями Git в Windows, но я хотел бы сделать следующий шаг размещения репозитория со службой, которая может обеспечить доступ к другим.
Ниже приведены некоторые шаги, которые можно выполнить, чтобы запустить демон 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 из приглашения с повышенными правами (то есть, как admin), чтобы установить script в качестве службы (Примечание: предполагается, что 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
Вы закончили. Если вы хотите протестировать его, вот быстрый и грязный script, который показывает, что вы можете нажимать на 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
GitStack может быть вашим лучшим выбором. В настоящее время он свободен (до 2 пользователей) и с открытым исходным кодом на момент написания.
Здесь выделенный git сервер для окон: https://github.com/jakubgarfield/Bonobo-Git-Server/wiki
git update-server-info
) после HTTP push, и эта логика не реализована их библиотекой Git (GitSharp). Я сомневаюсь, что это скоро достигнет реального рабочего состояния.
Если вы работаете в среде Windows, считаете ли вы Mercurial? Это распределенная система управления версиями, такая как Git, но интегрируется гораздо более аккуратно и легко с Windows.
Если после выполнения команды вы получите сообщение об ошибке cygrunsrv: Error starting a service: QueryServiceStatus: Win32 error 1062: The service has not been started.
:
cygrunsrv --start gitd
это означает, что вы не создали папку "базовый путь".
Создание папки '/ git' и повторная команда будут исправлены.
/git
NTFS не разрешают доступ для чтения / записи учетной записи службы (SYSTEM).
Установка CygWin является излишним, прочитайте этот учебник о том, как это сделать быстрее и native:
http://code.google.com/p/tortoisegit/wiki/HOWTO_CentralServerWindowsXP
В настоящее время я использую демон cygwin ssh в Windows для обслуживания и разрешения удаленного доступа к моему репо. Он работает достаточно хорошо, у меня есть полный контроль над тем, кто обращается к моему репо с помощью своих сертификатов ssh, а производительность прорывается даже по удаленным WAN и VPN-ссылкам.
Другое решение - использовать Gitosis. Это инструмент, облегчающий репозиционирование хостинга.
Считаете ли вы использование слоя cygwin? См. эту ссылку.
Теперь msysGit поддерживает демона git! Он отлично работает (по крайней мере для меня). Я попытаюсь запустить его как сервис...
Вам не нужно размещать службу, вы также можете создать общий репозиторий на общем диске. Просто создайте голый репозиторий. Вы можете клонировать существующее репо в общий, используя: "git clone --bare --shared [source] [dest]". Вы также можете создать новый репозиторий, используя "git init --bare --shared = all".
Хенка
На работе я использую GitBlit GO, установленный на Windows Server. Работайте безупречно и хорошо интегрируйтесь с ActiveDirectory для аутентификации и авторизации пользователей. Он также бесплатный и с открытым исходным кодом (с лицензией Apache)
Поддерживается только доступ HTTP (S), нет SSH, но под Windows вам больше ничего не нужно.
В Windows вы также можете обслуживать репозитории Git с Apache через HTTP или HTTPS, используя расширение DAV.
После этого путь к хранилищу Git может быть защищен проверками подлинности Apache, такими как ограничение определенных IP-адресов или проверка подлинности типа htpasswd/htdigest.
Ограничение использования htpasswd/htdigest аутентификации заключается в том, что имя пользователя: пароль передается в запрошенном URL Git, поэтому лучше ограничивать доступ к URL-адресу Git к определенным IP-адресам.
Изменить: обратите внимание, вы можете оставить пароль из URL Git, а Git предложит вам пароль вместо push и fetch/pull.
Использование HTTPS означает, что все данные зашифрованы при передаче.
Это достаточно легко настроить и работает.
В следующем примере показана комбинация контроля доступа по IP-адресу и пользователю: пароль по стандарту HTTP.
Пример Apache Virtualhost
## GIT HTTP DAV ##
<VirtualHost *:80>
ServerName git.example.com
DocumentRoot C:\webroot\htdocs\restricted\git
ErrorLog C:\webroot\apache\logs\error-git-webdav.log
<Location />
DAV on
# Restrict Access
AuthType Basic
AuthName "Restricted Area"
AuthUserFile "C:\webroot\apache\conf\git-htpasswd"
# To valid user
Require valid-user
# AND valid IP address
Order Deny,Allow
Deny from all
# Example IP 1
Allow from 203.22.56.67
# Example IP 2
Allow from 202.12.33.44
# Require both authentication checks to be satisfied
Satisfy all
</Location>
</VirtualHost>
Пример .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = http://username:[email protected]/codebase.git
[branch "master"]
remote = origin
merge = refs/heads/master
это ответ 2015 года на вопрос, которому больше 7 лет.
За одноразовый платеж за 10 долларов, от https://bitbucket.org/product/server, можно приобрести 64-разрядную лицензию Windows для 10 пользователей.
По-видимому, 32-разрядные версии доступны только через их архив.
Сервер Bitbucket ранее был известен как Stash.
Обратите внимание, что я не пробовал эту версию, но 10 долларов США, похоже, очень хорошо; здесь я читаю, что Atlassian дает 10 долларов на благотворительность. FWIW
Для Windows 7 x64 и Cygwin 1.7.9 мне нужно было использовать /usr/bin/gitd в качестве аргумента args cygrunsrv
cygrunsrv --install gitd \
--path c:/cygwin/bin/bash.exe \
--args /usr/bin/gitd \
--desc "Git Daemon" \
--neverexits \
--shutdown
Кроме того, мне нужно было запустить bash в качестве администратора для установки службы.
Я думаю, что Хенк говорит, что вы можете создать общий репозиторий на диске, а затем скопировать его в какое-то общее место, к которому у вас есть доступ. Если есть какой-то сервер компании или что-то, к чему у вас обоих есть доступ к ssh, вы можете поместить репозиторий где-нибудь, где вы можете отправить его на свой компьютер, а затем извлечь из него. Я сделал это для себя, потому что у меня два компьютера. Это хлопот, но он работает.