Git服务:我希望这很简单

时间:2008-12-18 08:34:57

标签: windows git mercurial

我想知道如何简单发布http =很像Mercurial的hg服务!在Windows /工作框中执行以下操作:

git serve 

然后在Linux框上SIMPLY go:

git clone http://project project 

结束。

8 个答案:

答案 0 :(得分:194)

导航到您的项目并使用以下开关启动git-daemon:

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

这告诉git-daemon提供当前目录中的所有项目(我假设它是包含.git /文件夹的项目目录)。它还告诉它重新使用相同的地址,如果你关闭并重新启动它太快。

您可以将其放入一个易于记忆的名称(如“gitserve”)的批处理脚本中,因此您无需再次输入所有内容。正如一些评论中所建议的那样,在最近的Git版本中,您可以add an alias to the Git config

[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

答案 1 :(得分:14)

使用gitjour而不是编写自己的批处理脚本。它知道如何正确启动git守护进程并通过mDNS广播克隆URL,这样你就可以在linux框上执行gitjour show并复制和粘贴。

也是一篇很好的文章,概述了gitjour以及Nic博士提供的其他一些类似工具,What is *jour and why they are killer apps for RailsCamp08

答案 2 :(得分:12)

目前使用两个别名 - 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

答案 3 :(得分:11)

如果您只想使用Web浏览器公开存储库

git-instaweb

$ git instaweb -d apache2 --start
$ lynx localhost:1234

答案 4 :(得分:9)

这是另一种方式。你需要安装python。

  • 运行git update-server-info
  • 转到.git目录
  • 运行python -mSimpleHTTPServer

(只需在你的gitconfig中创建一个别名)

现在您可以使用git pull http://HOST_NAME:8000/

来提取回购

PS:使用git守护程序解决方案时,您可以设置--base-path=.git,以便网址为git://HOST/

答案 5 :(得分:0)

git-webui是一个git扩展,它提供基于Web的用户界面以及从其他计算机克隆/拉取的能力

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/

答案 6 :(得分:0)

在.git / config

中添加以下行
[instaweb]
               local = true
               httpd = webrick
               port = 4231

然后执行

git instaweb

答案 7 :(得分:0)

Git 2.21(2019年2月)允许您将python和git instaweb结合使用:

请参见commit 2eb14bbArti Zirk (artizirk)(2019年1月28日)。
(由Junio C Hamano -- gitster --commit abf39e3中合并,2019年2月5日)

  

git-instaweb:添加内置Python http.server支持

     

使用此补丁程序,可以通过git-instaweb选项使用Python http.server CGI处理程序来启动-d python

     

git-instaweb围绕http.server(在GIT_DIR/gitweb/中)生成一个小的包装,以解决CGI处理程序的局限性,其中CGI脚本必须位于cgi-bin子目录中,并且目录索引不能轻易更改。为了使实现保持较小,gitweb在URL /cgi-bin/gitweb.cgi上运行,并且自动   打开/时完成重定向。

     

生成的包装器与Python 2和3兼容。

     

Python默认安装在大多数现代Linux发行版中   这样就可以运行git instaweb -d python而不需要   还有什么。