Git serve: хотелось бы, чтобы все было так просто

134

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

git serve 

а затем в поле Linux SIMPLY go:

git clone http://project project 

закончил.

  • 0
    Знаете ли вы, что клонировать git-svn-клон svn-репо сложно? subtlegradient.com/articles/2008/04/22/cloning-a-git-svn-clone
  • 0
    Почему бы просто не установить svn на своем ноутбуке linux и проверить использование напрямую из репозитория проекта? Git может быть новой жаркостью, но на самом деле кажется, что в этом конкретном случае вы делаете свою жизнь излишне сложной.
Показать ещё 3 комментария
Теги:
mercurial

6 ответов

182
Лучший ответ

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

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

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

Вы можете поместить это в пакетный script с легко запоминающимся именем, например "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
  • 4
    о да ты удивительный человек спасибо
  • 3
    Вы можете добавить команду в качестве псевдонима к вашему файлу .gitconfig, как описано здесь: git.or.cz/gitwiki/Aliases#Serverepoonthespot
Показать ещё 9 комментариев
14

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

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

  • 0
    +1 за то, что привлек мое внимание.
  • 0
    Выглядит очень полезно. Благодарю.
Показать ещё 1 комментарий
11

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

[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 daemon: http://l.rw.rw/git-daemon.

10

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

git-instaweb

$ git instaweb -d apache2 --start
$ lynx localhost:1234
  • 0
    это говорит, что lighttpd not found. Install lighttpd or use --httpd to specify another httpd daemon.
  • 4
    @syedrakib Вам нужно будет установить lighttpd, или apache2, или что-то еще. Лично я использую git instaweb -d webrick в OS X, потому что webrick поставляется с Ruby, который предустановлен в OS X.
Показать ещё 2 комментария
8

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

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

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

Теперь вы можете вывести репо с помощью git pull http://HOST_NAME:8000/

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

  • 0
    В Python 3 эквивалентной командой является python -m http.server
0

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/
  • 0
    Я просто пытался с этим вслепую. Я могу git clone, но не могу получить доступ к webgui. Похоже, браузер ждет ответа от вашего сервера.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню