how from create windows git

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



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)

Página de inicio de GitBlit

Solo se admite el acceso HTTP (S), no SSH, pero en Windows no debería necesitar nada más.



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.


SCM Manager

  • 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