web-dev-qa-db-fra.com

Git serve: j'aimerais que ce soit aussi simple

Je veux savoir comment publier simplement sur http = à peu près comme Mercurial h's serve! Sur Windows/zone de travail, procédez comme suit:

git serve 

puis sur la machine Linux, tout simplement:

git clone http://project project 

fini. 

136
Setori

Naviguez dans votre projet et démarrez git-daemon avec les commutateurs suivants:

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

Ceci dit à git-daemon de servir tous les projets dans le répertoire actuel (ce qui, je suppose, est le répertoire du projet contenant le dossier .git /). Il lui dit également de réutiliser la même adresse si vous l’arrêtez et le redémarrez trop vite. 

Vous pouvez l'insérer dans un script batch avec un nom facile à retenir, tel que "gitserve", afin que vous n'ayez pas besoin de tout taper à nouveau. 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 machine Windows), vous pouvez 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
194
seanhodges

Plutôt que d’écrire votre propre script batch, utilisez gitjour . Il sait comment démarrer correctement le démon git et diffuse l'URL de clone via mDNS afin que vous puissiez créer gitjour show sur la boîte Linux et le copier-coller.

Également un bon article avec un aperçu de gitjour et un certain nombre d’outils similaires de Dr. Nic, Qu'est-ce que * jour et pourquoi ils sont des applications révolutionnaires pour RailsCamp08 .

14
Otto

Utilise actuellement deux alias - serve et hub. Servir 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

En outre, il existe un didacticiel plus détaillé sur le partage via le démon git: http://l.rw.rw/git-daemon .

12
criskiev

Si vous souhaitez simplement exposer le référentiel avec un navigateur Web

git-instaweb

$ git instaweb -d Apache2 --start
$ lynx localhost:1234
11
John Mee

Voici une alternative. Vous aurez besoin de python installé.

  • exécuter git update-server-info
  • aller dans le répertoire .git
  • exécuter python -mSimpleHTTPServer

(créez simplement un alias dans votre gitconfig)

Maintenant, vous pouvez tirer le dépôt avec git pull http://Host_NAME:8000/

PS: lors de l’utilisation de la solution git daemon, vous pouvez définir --base-path=.git pour que l’url soit git://Host/.

9
bara

Ajouter les lignes suivantes dans .git/config

[instaweb]
               local = true
               httpd = webrick
               port = 4231

puis exécuter 

git instaweb
0
Nayagam

Git 2.21 (février 2019) vous permet de combiner python et git instaweb :

Voir commit 2eb14bb (28 janvier 2019) de Arti Zirk (artizirk) .
(Fusionné par Junio ​​C Hamano - gitster - dans commit abf39e3 , 5 février 2019)

git-instaweb: ajoute le support http.server intégré à Python

Avec ce patch, il est possible de lancer git-instaweb en utilisant le gestionnaire CGI http.server CGY via l’option -d python.

git-instaweb génère un petit wrapper autour du http.server (dans GIT_DIR/gitweb/) qui adresse une limitation du gestionnaire CGI dans lequel les scripts CGI doivent figurer dans un sous-répertoire cgi-bin et où l'index de répertoire ne peut pas être modifié facilement. Pour que l'implémentation reste petite, gitweb est exécuté sur l'URL /cgi-bin/gitweb.cgi et une redirection automatique est effectuée lors de l'ouverture de /.

Le wrapper généré est compatible avec Python 2 et 3.

Python est installé par défaut sur la plupart des distributions Linux modernes, ce qui permet d'exécuter git instaweb -d python sans avoir besoin de rien d'autre.

0
VonC

git-webui est une extension git qui fournit une interface utilisateur basée sur le Web et la possibilité de cloner/extraire d'autres ordinateurs.

https://github.com/alberthier/git-webui

$ cd my_git_repo
$ git webui

D'autres personnes peuvent 

$ git clone http://<ip-of-your-computer>:8000/ repoclone

ou

$ git pull http://<ip-of-your-computer>:8000/
0
alberthier