Ich möchte wissen, wie man einfach über http = veröffentlicht, ähnlich wie Mercurial 's hg dienen! In der Windows/Arbeitsbox führen Sie Folgendes aus:
git serve
und dann auf die Linux-Box SIMPLY gehen:
git clone http://project project
fertig.
Navigieren Sie in Ihr Projekt und starten Sie git-daemon mit den folgenden Schaltern:
cd project
git daemon --reuseaddr --base-path=. --export-all --verbose
Dadurch wird git-daemon angewiesen, alle Projekte innerhalb des aktuellen Verzeichnisses bereitzustellen (wobei ich davon ausgehe, dass es sich um das Projektverzeichnis handelt, das den Ordner .git/enthält). Außerdem wird die gleiche Adresse erneut verwendet, wenn Sie sie herunterfahren und zu schnell wieder starten.
Sie können dies in ein Batch-Skript mit einem leicht zu merkenden Namen wie "gitserve" einfügen, sodass Sie nicht alles neu eingeben müssen. Wie in einigen Kommentaren vorgeschlagen, können Sie in den letzten Versionen von Git einen Alias zu der Git-Konfiguration hinzufügen :
[alias]
serve = !git daemon --reuseaddr --verbose --base-path=. --export-all ./.git
Sobald dies auf dem Server (Ihrer Windows-Box) erledigt ist, können Sie Folgendes tun:
git serve
git-daemon verwendet das git: // -Protokoll für den Transport. Auf dem Client (Ihrer Linux-Box) müssen Sie Folgendes tun:
git clone git://123.456.789.111/ project
Verwenden Sie statt eines eigenen Batch-Skripts gitjour . Es weiß, wie git daemon korrekt gestartet wird, und sendet die Klon-URL über mDNS, sodass Sie gitjour show
in der Linux-Box ausführen und kopieren und einfügen können.
Auch ein guter Artikel mit einer Übersicht über Gitjour und eine Reihe anderer ähnlicher Tools von Dr. Nic, Was ist * jour und warum sie Killer-Apps für RailsCamp08 sind.
Derzeit werden zwei Aliase verwendet - Serve und Hub. Dient zur schreibgeschützten Freigabe und Hub für die Lese-/Schreibfreigabe:
[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
Außerdem gibt es ein detaillierteres Tutorial zum Teilen über git daemon: http://l.rw.rw/git-daemon .
Wenn Sie das Repository nur mit einem Webbrowser verfügbar machen möchten
$ git instaweb -d Apache2 --start
$ lynx localhost:1234
Hier ist ein alternativer Weg. Sie benötigen Python installiert.
git update-server-info
ausführen.git
python -mSimpleHTTPServer
ausführen(Erstellen Sie einfach einen Alias in Ihrer gitconfig)
Jetzt können Sie das Repo mit git pull http://Host_NAME:8000/
ziehen.
PS: Wenn Sie die Git Daemon-Lösung verwenden, können Sie --base-path=.git
so einstellen, dass die URL git://Host/
lautet.
Fügen Sie folgende Zeilen in .git/config hinzu
[instaweb]
local = true
httpd = webrick
port = 4231
dann ausführen
git instaweb
Mit Git 2.21 (Feb. 2019) können Sie Python und git instaweb
kombinieren:
Siehe Commit 2eb14bb (28. Januar 2019) von Arti Zirk (artizirk
) .
(Zusammengeführt von Junio C Hamano - gitster
- in commit abf39e3 , 05. Februar 2019)
git-instaweb
: Fügt die in Python integriertehttp.server
-Unterstützung hinzuMit diesem Patch ist es möglich,
git-instaweb
mithilfe des Python-CGI-Handlershttp.server
über die Option-d python
zu starten.
git-instaweb
generiert einen kleinen Wrapper um denhttp.server
(inGIT_DIR/gitweb/
), der eine Einschränkung des CGI-Handlers behebt, bei dem sich CGI-Skripts in einemcgi-bin
-Unterverzeichnis befinden müssen und der Verzeichnisindex nicht einfach geändert werden kann. Um die Implementierung klein zu halten, wirdgitweb
unter der URL/cgi-bin/gitweb.cgi
ausgeführt, und beim Öffnen von/
erfolgt eine automatische Umleitung.Der generierte Wrapper ist sowohl mit Python 2 als auch mit Python 3 kompatibel.
Python ist standardmäßig auf den meisten modernen Linux-Distributionen installiert, sodass
git instaweb -d python
ausgeführt werden kann, ohne dass etwas anderes benötigt wird.
git-webui ist eine Git-Erweiterung, die eine webbasierte Benutzeroberfläche bietet und die Möglichkeit bietet, von anderen Computern zu klonen/zu ziehen
https://github.com/alberthier/git-webui
$ cd my_git_repo
$ git webui
Andere Leute können das
$ git clone http://<ip-of-your-computer>:8000/ repoclone
oder
$ git pull http://<ip-of-your-computer>:8000/