我想知道如何简单发布http =很像Mercurial的hg服务!在Windows /工作框中执行以下操作:
git serve
然后在Linux框上SIMPLY go:
git clone http://project project
结束。
答案 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)
答案 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 2eb14bb的Arti Zirk (artizirk
)(2019年1月28日)。
(由Junio C Hamano -- gitster
--在commit abf39e3中合并,2019年2月5日)
git-instaweb
:添加内置Pythonhttp.server
支持使用此补丁程序,可以通过
git-instaweb
选项使用Pythonhttp.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
而不需要 还有什么。