Sous Windows, vous pouvez également servir des référentiels Git avec Apache sur HTTP ou HTTPS, à l'aide de l'extension DAV.
Le chemin du référentiel Git peut ensuite être protégé par des contrôles d'authentification Apache tels que la restriction à certaines adresses IP ou l'authentification de type htpasswd / htdigest.
La limitation de l'utilisation de l'authentification htpasswd / htdigest est que le nom d'utilisateur: mot de passe est passé dans l'URL Git demandée, il est donc préférable de restreindre l'accès à l'URL Git à certaines adresses IP.
Modifier: Notez que vous pouvez laisser le mot de passe en dehors de l'URL Git et Git vous demandera le mot de passe lors du push et de la récupération / extraction à la place.
L'utilisation de HTTPS signifie que toutes les données sont cryptées lors du transfert.
Il est assez facile à installer et fonctionne.
L'exemple suivant montre la combinaison du contrôle d'accès par adresse IP et utilisateur: mot de passe sur HTTP standard.
Exemple 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>
Exemple .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