我想知道如何简单地通过 http = 发布,就像Mercurial的 hg 服务!在 Windows/work 框中执行以下操作:
git serve
然后在 Linux 盒子上简单地去:
git clone http://project project
完成的。
导航到您的项目并使用以下开关启动 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
与其编写自己的批处理脚本,不如使用gitjour。它知道如何正确启动 git 守护进程,并将通过 mDNS 广播克隆 URL,因此您可以gitjour show
在 linux 机器上进行复制和粘贴。
还有一篇很好的文章,概述了 gitjour 和 Nic 博士的许多其他类似工具,什么是 *jour 以及为什么它们是 RailsCamp08 的杀手级应用程序。
目前使用两个别名 - 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 daemon 共享的教程:http: //l.rw.rw/git-daemon。
这是另一种方法。您将需要安装 python。
git update-server-info
.git
目录python -mSimpleHTTPServer
(只需在您的 gitconfig 中创建一个别名)
现在您可以使用git pull http://HOST_NAME:8000/
PS:当使用 git daemon 解决方案时,您可以设置--base-path=.git
这样的 urlgit://HOST/
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
:
请参阅Arti Zirk ( ) 的提交 2eb14bb(2019 年 1 月 28 日)。(由Junio C Hamano 合并 -- --在提交 abf39e3中,2019 年 2 月 5 日)artizirk
gitster
git-instaweb
: 添加 Python 内置http.server
支持使用此补丁,可以通过选项
git-instaweb
使用 Pythonhttp.server
CGI 处理程序启动。-d python
git-instaweb
http.server
在(in )周围生成一个小包装器GIT_DIR/gitweb/
,解决 CGI 处理程序的限制,其中 CGI 脚本必须位于cgi-bin
子目录中并且目录索引不能轻易更改。为了使实现保持较小,gitweb
在 url 上运行,/cgi-bin/gitweb.cgi
并且在打开时自动重定向/
。生成的包装器与 Python 2 和 3 兼容。
Python 默认安装在大多数现代 Linux 发行版上,
git instaweb -d python
无需其他任何东西即可运行。