it-swarm.com.de

Git dienen: So einfach möchte ich es haben

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. 

136
Setori

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
194
seanhodges

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.

14
Otto

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 .

12
criskiev

Wenn Sie das Repository nur mit einem Webbrowser verfügbar machen möchten

git-instaweb

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

Hier ist ein alternativer Weg. Sie benötigen Python installiert.

  • git update-server-info ausführen
  • wechseln Sie in das Verzeichnis .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.

9
bara

Fügen Sie folgende Zeilen in .git/config hinzu

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

dann ausführen 

git instaweb
0
Nayagam

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 integrierte http.server-Unterstützung hinzu

Mit diesem Patch ist es möglich, git-instaweb mithilfe des Python-CGI-Handlers http.server über die Option -d python zu starten.

git-instaweb generiert einen kleinen Wrapper um den http.server (in GIT_DIR/gitweb/), der eine Einschränkung des CGI-Handlers behebt, bei dem sich CGI-Skripts in einem cgi-bin-Unterverzeichnis befinden müssen und der Verzeichnisindex nicht einfach geändert werden kann. Um die Implementierung klein zu halten, wird gitweb 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.

0
VonC

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/
0
alberthier