from - Hosting Git Repository en Windows
import repo github (16)
¿Existe actualmente una forma de alojar un repositorio compartido de Git en Windows? Entiendo que puede configurar el servicio de Git en Linux con:
git daemon
¿Hay una opción nativa de Windows, sin compartir carpetas, para alojar un servicio de Git?
EDITAR: actualmente estoy usando la instalación cygwin de git para almacenar y trabajar con repositorios git en Windows, pero me gustaría dar el siguiente paso de alojar un repositorio con un servicio que pueda proporcionar acceso a otros.
¡Ahora msysGit es compatible con git daemon! Funciona bien (al menos para mí). Voy a intentar que funcione como servicio ...
¿Has considerado usar la capa cygwin? Ver este enlace
Actualmente estoy usando cygwin''s ssh daemon en Windows para servir y permitir el acceso remoto a mi repositorio. Funciona bastante bien, tengo control total sobre quién accede a mi repositorio por medio de sus certificados ssh, y los resultados de rendimiento, incluso a través de enlaces WAN y VPN remotos.
Otra solución es usar Gitosis . Es una herramienta que hace que los repos de hosting sean mucho más fáciles.
Aquí hay algunos pasos que puede seguir para ejecutar el daemon git en Windows:
(Requisitos previos: una instalación predeterminada de Cygwin y un cliente git que admita git daemon)
Paso 1 : abre un shell bash
Paso 2 : en el directorio / cygdrive / c / cygwin64 / usr / local / bin /, crea un archivo llamado "gitd" con el siguiente contenido:
#!/bin/bash
/usr/bin/git daemon --reuseaddr --base-path=/git --export-all --verbose --enable=receive-pack
Paso 3 : ejecute el siguiente comando cygrunsrv desde un indicador elevado (es decir, como administrador) para instalar el script como un servicio (Nota: se supone que Cygwin está instalado en C: / cygwin64):
cygrunsrv --install gitd /
--path c:/cygwin64/bin/bash.exe /
--args c:/cygwin64/usr/local/bin/gitd /
--desc "Git Daemon" /
--neverexits /
--shutdown
Paso 4 : ejecuta el siguiente comando para iniciar el servicio:
cygrunsrv --start gitd
Estás listo. Si desea probarlo, aquí hay un script rápido y sucio que muestra que puede pasar el protocolo git a su máquina local:
#!/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
Aquí hay un servidor de git dedicado para Windows: https://github.com/jakubgarfield/Bonobo-Git-Server/wiki
Creo que lo que Henk está diciendo es que puedes crear un repositorio compartido en una unidad y luego copiarlo en una ubicación común a la que ambos tengas acceso. Si hay algún servidor de la compañía o algo a lo que ambos tienen acceso ssh, puede colocar el repositorio en algún lugar donde pueda SCP de nuevo a su propia computadora, y luego sacarlo de allí. Hice esto por mí mismo un tiempo, ya que tengo dos computadoras. Es una molestia, pero funciona.
En Windows, también puede servir repositorios Git con Apache sobre 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 la restricción a ciertas direcciones IP o la autenticación de tipo htpasswd / htdigest.
La limitación del uso de la autenticación htpasswd / htdigest es que el nombre de usuario: la contraseña se pasa en la URL Git solicitada, por lo que restringir el acceso a la dirección URL Git a ciertas direcciones IP es mejor.
Editar: Tenga en cuenta que puede dejar la contraseña fuera de la URL de Git y, en su lugar, Git le solicitará la contraseña de empuje y extracción / extracción.
El uso de HTTPS significa que todos los datos se cifran 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:[email protected]/codebase.git
[branch "master"]
remote = origin
merge = refs/heads/master
En el trabajo estoy usando GitBlit GO instalado en un servidor de Windows. Trabaje sin problemas e integre bien con ActiveDirectory para la autenticación y autorización del usuario. También es gratuito y de código abierto (con licencia Apache)
Solo se admite el acceso HTTP (S), no SSH, pero en Windows no debería necesitar nada más.
Instalar CygWin es una exageración, lea este tutorial sobre cómo hacerlo más rápido y nativo:
http://code.google.com/p/tortoisegit/wiki/HOWTO_CentralServerWindowsXP
No necesita alojar un servicio, también puede crear un repositorio compartido en una unidad compartida. Solo crea un repositorio desnudo. Puede clonar un repositorio existente en uno compartido usando: "git clone --bare --shared [source] [dest]". También puede iniciar un nuevo repositorio usando "git init --bare --shared = all".
Henk
Para Windows 7 x64 y Cygwin 1.7.9, necesitaba usar / usr / bin / gitd como el argumento args de cygrunsrv
cygrunsrv --install gitd /
--path c:/cygwin/bin/bash.exe /
--args /usr/bin/gitd /
--desc "Git Daemon" /
--neverexits /
--shutdown
Además, necesitaba ejecutar bash como administrador para instalar el servicio.
Si está trabajando en un entorno Windows, ¿ha considerado Mercurial ? Es un sistema de control de versiones distribuidas como Git, pero se integra de forma mucho más clara y sencilla con Windows.
Si obtiene el error cygrunsrv: Error starting a service: QueryServiceStatus: Win32 error 1062: The service has not been started.
después de ejecutar el comando:
cygrunsrv --start gitd
eso significa que no creó la carpeta ''base-path''.
Crear la carpeta ''/ git'' y volver a ejecutar el comando solucionará esto.
esta es una respuesta de 2015 a una pregunta que tiene más de 7 años.
Por un pago único de $ 10, desde https://bitbucket.org/product/server , se puede comprar una licencia de Windows de 64 bits para hasta 10 usuarios .
Aparentemente las versiones de 32 bits solo están disponibles a través de su archivo.
El servidor Bitbucket anteriormente se conocía como Stash .
Tenga en cuenta que no he probado esta versión, pero $ 10 parece una buena oferta; here leo que Atlassian le da los $ 10 a la caridad. FWIW
GitStack podría ser tu mejor opción. Actualmente es gratis (para hasta 2 usuarios) y de código abierto en el momento de la escritura.
- Servidor HTTP liviano para Git, Mercurial, repositorio Subversion de una caja (solo se necesita Java)
- Interfaz web para la gestión de usuarios, ACL, repos