服务员: 我希望事情就这么简单

我想知道如何简单地发布在 http = = 非常喜欢 反复无常的 hg 服务!在 Windows/work 框中执行以下操作:

git serve

然后在 Linux 机器上简单地说:

git clone http://project project

结束了。

20819 次浏览

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

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

这告诉 git-daemon 提供工作目录中的所有项目(我假设这是包含。Git/file).它还告诉它重用相同的地址,如果你关闭它,并启动它回来太快。

您可以将其放入一个批处理脚本中,并使用一个容易记住的名称,比如“ gitserver”,这样就不需要再次键入所有内容。正如一些评论所建议的,在 Git 的最新版本中,你可以使用 向 Git 配置添加别名:

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

一旦在服务器(你的 Windows 机器)上完成了这些操作,你可以:

git serve

Git-daemon 使用 git://protocol 进行传输,因此在客户机(您的 Linux 机器)上,您需要:

git clone git://123.456.789.111/ project

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

还有一篇很好的文章,概述了 gitjour 以及 Nic 博士的其他类似工具,什么是 * jour? 为什么它们是 RailsCamp08的杀手级应用程序

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

Git-instaweb

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

这里有一个替代方法。您需要安装 python。

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

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

现在你可以用 git pull http://HOST_NAME:8000/拉回购

PS: 当使用 git 守护进程解决方案时,您可以设置 --base-path=.git,使 URL 为 git://HOST/

目前使用两个别名——“服务”和“集线器”。“服务”用于只读共享,“集线器”用于读/写共享:

[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

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/

在. git/config 中添加以下行

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

然后执行

git instaweb

Git 2.21(2019年2月)允许你组合 python 和 git instaweb:

承诺2eb14bb(2019年1月28日) by Arti Zirk (artizirk)
(由 朱尼奥 · C · 哈马诺 gitster于2019年2月5日合并于 犯下 abf39e3)

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

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

git-instawebhttp.server周围生成一个小的包装器(在 GIT_DIR/gitweb/中) ,该包装器解决了 CGI 处理程序的一个限制,即 CGI 脚本必须位于 cgi-bin子目录中,而且目录索引不容易更改。为了保持实现的小型化,gitweb运行在 url /cgi-bin/gitweb.cgi和一个自动的 打开 /时执行重定向。

生成的包装器兼容 Python2和3。

Python 默认安装在大多数现代 Linux 发行版上 它可以运行 git instaweb -d python而不需要 其他的。