Git serve: хотелось бы, чтобы все было так просто - PullRequest
136 голосов
/ 18 декабря 2008

Я хочу знать, как просто опубликовать через http = так же, как Mercurial hg serve! На Windows / рабочий ящик сделайте это:

git serve 

и затем в окне Linux ПРОСТО перейдите:

git clone http://project project 

закончен.

Ответы [ 8 ]

195 голосов
/ 18 декабря 2008

Перейдите в свой проект и запустите git-daemon со следующими переключателями:

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

Это говорит git-daemon обслужить все проекты в текущем каталоге (я предполагаю, что это каталог проектов, содержащий папку .git /). Он также говорит, что он должен повторно использовать тот же адрес, если вы выключите его и начнете восстанавливать его слишком быстро.

Вы можете поместить это в пакетный скрипт с легко запоминающимся именем, таким как "gitserve", так что вам не нужно вводить все заново. Как указано в некоторых комментариях, в последних версиях Git вы можете добавить псевдоним в конфигурацию Git :

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

Как только это будет сделано на сервере (в вашей Windows-системе), вы можете сделать:

git serve

git-daemon использует протокол git: // для транспорта, поэтому на клиенте (вашем Linux-боксе) вам нужно будет сделать:

git clone git://123.456.789.111/ project
14 голосов
/ 19 декабря 2008

Вместо того, чтобы писать собственный пакетный скрипт, используйте gitjour . Он знает, как правильно запустить git daemon и будет транслировать URL-адрес клона через mDNS, чтобы вы могли сделать gitjour show в окне linux, скопировать и вставить.

Также хорошая статья с обзором gitjour и ряда других подобных инструментов от Dr. Nic, Что такое * jour и почему они являются убийственными приложениями для RailsCamp08 .

12 голосов
/ 20 сентября 2013

В настоящее время используются два псевдонима - serve и hub. Служить для общего ресурса только для чтения и концентратора для общего ресурса для чтения / записи:

[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

Кроме того, есть более подробное руководство по обмену через демон git: http://l.rw.rw/git-daemon.

11 голосов
/ 15 марта 2011

Если вы просто хотите открыть хранилище через веб-браузер

ГИТ-instaweb

$ git instaweb -d apache2 --start
$ lynx localhost:1234
9 голосов
/ 30 января 2012

Вот альтернативный способ. Вам понадобится установленный Python.

  • пробег git update-server-info
  • перейти в каталог .git
  • пробег python -mSimpleHTTPServer

(просто создайте псевдоним в вашем gitconfig)

Теперь вы можете потянуть репо с git pull http://HOST_NAME:8000/

PS: при использовании решения git daemon вы можете установить --base-path=.git, чтобы URL был git://HOST/

0 голосов
/ 03 марта 2019

Git 2.21 (февраль 2019) позволяет комбинировать python и git instaweb:

См. коммит 2eb14bb (28 января 2019 г.) от Арти Зирк (artizirk) .
(Объединено с Junio ​​C Hamano - gitster - в коммит abf39e3 , 05 февраля 2019 г.)

git-instaweb: добавить встроенный Python http.server поддержка

С помощью этого патча можно запустить git-instaweb с помощью обработчика Python http.server CGI с опцией -d python.

git-instaweb генерирует небольшую оболочку вокруг http.serverGIT_DIR/gitweb/), которая обращается к ограничению обработчика CGI, где скрипты CGI должны находиться в подкаталоге cgi-bin, а индекс каталога не может быть легко изменен , Чтобы сохранить реализацию небольшой, gitweb работает по URL /cgi-bin/gitweb.cgi и автоматически перенаправление выполняется при открытии /.

Созданная оболочка совместима с Python 2 и 3.

Python по умолчанию установлен в большинстве современных дистрибутивов Linux что позволяет запускать git instaweb -d python без необходимости все остальное.

0 голосов
/ 03 января 2018

Добавить следующие строки в .git / config

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

затем выполнить

git instaweb
0 голосов
/ 23 сентября 2014

git-webui - это расширение git, которое предоставляет веб-интерфейс пользователя и возможность клонировать / извлекать данные с других компьютеров

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

$ cd my_git_repo
$ git webui

Другие люди могут

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

или

$ git pull http://<ip-of-your-computer>:8000/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...