En Windows, también puede servir repositorios de Git con Apache a través de HTTP o HTTPS, utilizando la extensión DAV.
La ruta del repositorio de Git se puede proteger con comprobaciones de autenticación de Apache, como restringir a ciertas direcciones IP o autenticación de tipo htpasswd / htdigest.
La limitación de usar la autenticación htpasswd / htdigest es que el nombre de usuario: contraseña se pasa en la URL de Git solicitada, por lo que es mejor restringir el acceso a la URL de Git a ciertas direcciones IP.
Editar: Tenga en cuenta que puede dejar la contraseña fuera de la URL de Git y Git le pedirá la contraseña al presionar y recuperar / extraer.
Usar HTTPS significa que todos los datos están encriptados en la transferencia.
Es bastante fácil de configurar y funciona.
El siguiente ejemplo muestra la combinación de control de acceso por dirección IP y usuario: contraseña sobre HTTP estándar.
Ejemplo 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>
Ejemplo .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