140 votes

Git serve : J'aimerais que ce soit aussi simple

Je voudrais savoir comment publier simplement sur http = un peu comme Mercuriale Le service hg de l'UE ! Dans la boîte Windows/work, faites ceci :

git serve 

et ensuite, sur la boîte Linux, allez SIMPLEMENT :

git clone http://project project 

terminé.

0 votes

Savez-vous que cloner un clone git-svn d'un repo svn est délicat ? subtlegradient.com/articles/2008/04/22/cloning-a-git-svn-clone

0 votes

Pourquoi ne pas installer svn sur votre ordinateur portable linux et utiliser directement le dépôt du projet ? Git est peut-être la nouvelle mode, mais il semble vraiment que vous vous compliquiez inutilement la vie dans ce cas particulier.

0 votes

Bendin non je ne savais pas que c'était délicat, je suis en train de mettre en place l'environnement et je suis content que tu en parles...

199voto

seanhodges Points 8005

Naviguez dans votre projet et démarrez git-daemon avec les options suivantes :

cd project
git daemon --reuseaddr --base-path=. --export-all --verbose

Cela indique à git-daemon de servir tous les projets se trouvant dans le répertoire courant (qui, je suppose, est le répertoire de projet contenant le dossier .git/). Cela lui indique également de réutiliser la même adresse si vous l'arrêtez et le redémarrez trop rapidement.

Vous pouvez mettre cela dans un fichier batch script avec un nom facile à retenir comme "gitserve", de sorte que vous n'ayez pas besoin de tout retaper. Comme suggéré dans certains commentaires, dans les versions récentes de Git, vous pouvez ajouter un alias à la configuration de Git :

[alias]
    serve = !git daemon --reuseaddr --verbose --base-path=. --export-all ./.git

Une fois que cela est fait sur le serveur (votre boîte Windows), vous pouvez le faire :

git serve

git-daemon utilise le protocole git:// pour le transport, donc sur le client (votre machine Linux), vous devez faire :

git clone git://123.456.789.111/ project

3 votes

Vous pouvez ajouter la commande en tant qu'alias à votre fichier .gitconfig comme décrit ici : git.or.cz/gitwiki/Aliases#Serverepoonthespot

1 votes

0 votes

Si vous démarrez git deamon en arrière-plan, il se peut que l'option --verbose ne fonctionne pas.

14voto

Otto Points 5166

Plutôt que d'écrire votre propre script par lots, utilisez gitjour . Il sait comment démarrer correctement le démon git et diffusera l'URL du clone via mDNS pour que vous puissiez faire gitjour show sur la machine linux et copier-coller.

Un autre article de Dr. Nic présente une vue d'ensemble de gitjour et d'un certain nombre d'autres outils similaires, Qu'est-ce que *jour et pourquoi ce sont des killer apps pour RailsCamp08 ? .

13voto

criskiev Points 18

Il utilise actuellement deux pseudonymes : serve et hub. Serve pour le partage en lecture seule et hub pour le partage en lecture/écriture :

[alias]
  serve = !git daemon --base-path=. --export-all --reuseaddr --informative-errors --verbose
  hub = !git daemon --base-path=. --export-all --enable=receive-pack --reuseaddr --informative-errors --verbose

Il existe également un tutoriel plus détaillé sur le partage via le démon git : http://l.rw.rw/git-daemon .

12voto

John Mee Points 12004

Si vous voulez simplement exposer le référentiel avec un navigateur web

git-instaweb

$ git instaweb -d apache2 --start
$ lynx localhost:1234

0 votes

Il est écrit lighttpd not found. Install lighttpd or use --httpd to specify another httpd daemon.

4 votes

@syedrakib Il faut que lighttpd soit installé, ou apache2, ou autre chose. Personnellement, j'utilise git instaweb -d webrick sur OS X, car webrick est livré avec Ruby, qui est préinstallé sur OS X.

6 votes

Cet outil ne semble pas être compatible avec Windows. Comme l'auteur de la question demandait un outil pour Windows, c'est un facteur important pour cette réponse.

9voto

bara Points 817

Voici une autre solution. Vous aurez besoin d'installer python.

  • courir git update-server-info
  • se rendre à la .git répertoire
  • courir python -mSimpleHTTPServer

(il suffit de créer un alias dans votre gitconfig)

Vous pouvez maintenant extraire le repo avec git pull http://HOST_NAME:8000/

PS : lorsque vous utilisez la solution du démon git, vous pouvez définir le paramètre --base-path=.git l'url est donc git://HOST/

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