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.
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
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 .
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 .
Si vous souhaitez simplement exposer le référentiel avec un navigateur Web
$ git instaweb -d Apache2 --start
$ lynx localhost:1234
Voici une alternative. Vous aurez besoin de python installé.
git update-server-info
.git
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/
.
Ajouter les lignes suivantes dans .git/config
[instaweb]
local = true
httpd = webrick
port = 4231
puis exécuter
git instaweb
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 supporthttp.server
intégré à PythonAvec ce patch, il est possible de lancer
git-instaweb
en utilisant le gestionnaire CGIhttp.server
CGY via l’option-d python
.
git-instaweb
génère un petit wrapper autour duhttp.server
(dansGIT_DIR/gitweb/
) qui adresse une limitation du gestionnaire CGI dans lequel les scripts CGI doivent figurer dans un sous-répertoirecgi-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.
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/