No Windows, você também pode servir repositórios Git com Apache sobre HTTP ou HTTPS, usando a extensão DAV.
O caminho do repositório Git pode então ser protegido com verificações de autenticação Apache, como restringir a determinados endereços IP ou autenticação do tipo htpasswd / htdigest.
A limitação de usar a autenticação htpasswd / htdigest é que o nome de usuário: senha é passado na URL Git solicitada, portanto, restringir o acesso à URL Git a certos endereços IP é melhor.
Edit: Nota, você pode deixar a senha fora do URL do Git e o Git irá solicitar a senha em push e buscar / puxar.
Usar HTTPS significa que todos os dados são criptografados na transferência.
É fácil de configurar e funciona.
O exemplo a seguir mostra a combinação de controle de acesso por endereço IP e usuário: senha sobre HTTP padrão.
Exemplo de 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>
Exemplo .git / config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = http://username:password@git.example.com/codebase.git
[branch "master"]
remote = origin
merge = refs/heads/master