109 votes

Héberger un dépôt Git sous Windows

Existe-t-il actuellement un moyen d'héberger un dépôt Git partagé sous Windows ? Je comprends que vous pouvez configurer le service Git sous Linux avec :

git daemon

Existe-t-il une option Windows native, autre que le partage de dossiers, pour héberger un service Git ?

EDIT : J'utilise actuellement l'installation cygwin de git pour stocker et travailler avec les dépôts git sous Windows, mais je voudrais passer à l'étape suivante en hébergeant un dépôt avec un service qui peut fournir un accès aux autres.

35 votes

Mon employeur actuel n'a pas de machines Unix ou Linux... introduire un nouveau fournisseur de contrôle de source et un nouveau système d'exploitation en même temps peut être un peu... traumatisant.

1 votes

Quel est le problème avec git-daemon ? Je pense qu'il fonctionne très bien sous Windows.

10 votes

Installer Git en utilisant le programme d'installation standard de msysgit pour Windows ne semble pas installer git daemon . :\

75voto

Derek Greer Points 3260

Voici quelques étapes que vous pouvez suivre pour faire fonctionner le démon git sous Windows :

(Conditions préalables : Une installation Cygwin par défaut et un client git qui supporte le démon git)

Étape 1 : Ouvrir un shell bash

Étape 2 : Dans le répertoire /cygdrive/c/cygwin64/usr/local/bin/, créez un fichier nommé "gitd" avec le contenu suivant :

#!/bin/bash

/usr/bin/git daemon --reuseaddr --base-path=/git --export-all --verbose --enable=receive-pack

Étape 3 : Exécutez la commande cygrunsrv suivante à partir d'une invite élevée (c'est-à-dire en tant qu'administrateur) pour installer le script en tant que service (Remarque : suppose que Cygwin est installé à l'adresse suivante C:\cygwin64 ):

cygrunsrv   --install gitd                          \
            --path c:/cygwin64/bin/bash.exe         \
            --args c:/cygwin64/usr/local/bin/gitd   \
            --desc "Git Daemon"                     \
            --neverexits                            \
            --shutdown

Étape 4 : Exécutez la commande suivante pour démarrer le service :

cygrunsrv --start gitd

Vous avez terminé. Si vous voulez le tester, voici un script rapide et sale qui montre que vous pouvez pousser sur le protocole git vers votre machine locale :

#!/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

2 votes

Si je pouvais modifier ce message, j'ajouterais ce qui suit : Prérequis : cygwin avec les paquets git et cygrunsrv installés.

0 votes

Ah, oui. Je suppose que j'ai trop présumé.

2 votes

Autre remarque : qualifiez complètement le chemin vers git à l'intérieur du shell gitd script. Sur l'une de mes machines, MSYSGit était lancé à la place de cygwin-git lors de l'exécution en tant que processus Windows. MSYSGit ne prenant pas en charge le mode démon, le service n'a pas réussi à démarrer.

16voto

poiuytrez Points 2854

GitStack pourrait être votre meilleur choix. Il est actuellement gratuit (jusqu'à 2 utilisateurs). et open source au moment de la rédaction.

2 votes

On dirait que c'était réservé aux projets open source ou étudiants : "GitStack est gratuit pour les projets open source et étudiants !"

12voto

Daniel O Points 1776

Voici un serveur git dédié pour Windows : https://github.com/jakubgarfield/Bonobo-Git-Server/wiki

0 votes

Quel est l'état du serveur Bonobo ? Est-il entièrement fonctionnel ? Je ne peux pas le dire à partir des documents, mais il semble très convaincant.

1 votes

@JeffFritz : j'ai arrêté de l'utiliser. Cette satanée chose ne met pas à jour l'état du référentiel ( git update-server-info ) après le push HTTP, et cette logique n'est pas implémentée par leur bibliothèque Git (GitSharp). Je doute qu'elle atteigne un état de fonctionnement réel dans un avenir proche.

0 votes

En outre, il ne fonctionne pas avec Teamcity (ce qui est la principale raison pour laquelle je ne l'utilise pas). github.com/jakubgarfield/Bonobo-Git-Server/issues/11

9voto

David Arno Points 15499

Si vous travaillez dans un environnement Windows, avez-vous pensé à Mercurial ? Il s'agit d'un système de contrôle de version distribué comme Git, mais qui s'intègre beaucoup plus proprement et facilement à Windows.

9 votes

Il est vrai qu'il est beaucoup plus facile d'utiliser Mercurial sur les machines Windows, du moins en ce qui concerne la possibilité de synchroniser les dépôts. Ce n'est pas une réponse très utile si vous devez utiliser Git !

0 votes

De plus, Bazaar fonctionne nativement sous Windows ; il bénéficie même d'un support commercial.

7voto

isaac Points 61

Si vous obtenez l'erreur cygrunsrv: Error starting a service: QueryServiceStatus: Win32 error 1062: The service has not been started. après avoir exécuté la commande :

cygrunsrv --start gitd

cela signifie que vous n'avez pas créé le dossier "base-path".

Créer le dossier '/git' et relancer la commande résoudra ce problème.

0 votes

Vous pouvez également obtenir cette erreur si votre /git Les permissions NTFS ne permettent pas au compte de service (SYSTEM) d'accéder en lecture/écriture.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X