我可以下载没有git的git存储库吗?
问题描述:
我在网上保存了很多git仓库中的东西。问题是我经常发现自己在没有git的机器上,而且我也没有root权限。我不一定需要将修改提交回repo,只需获取git项目的当前主控。我可以下载没有git的git存储库吗?
有没有办法下载一个git仓库,而不需要git本身?理想的解决方案是某种可移植的shell脚本。
谢谢!
答
这听起来像你正在寻找的东西,可以让你有一个本地工作目录与您的实际git存储库远程。
由于那种有点违背总是让你的整个版本库历史本地的git philsophy,我怀疑你会找到任何东西。你最好的选择可能是通过典型的文件复制方法(ftp,tarball或其他)复制另一个git工作目录中的源代码。
编辑: OOC,是否git客户端实际上需要管理员访问权限以供个人使用安装?我知道需要管理员来安装其中一个git服务器,但客户端只需用户访问即可。尝试安装(或从源代码编译)客户端。
答
在带有git存储库的服务器上,创建一个用于导出和压缩代码的shell脚本,然后从其他机器下载该zip文件。
例如:
cd /pub/git/project.git
git archive --format=zip --prefix=project/ HEAD > /home/project/public_html/downloads/project-dev.zip
此外,为了使这个生成点播HEAD,使用服务器端脚本来执行shell脚本,并提供下载的zip文件。
这是一个基本的CFML脚本,它可以做到这一点 - 但它显然可以用任何服务器端语言编写。
<cfset OutputFilename = "#ProjectName#-dev.zip"/>
<cfexecute name="/home/project/latest.sh"/>
<cfheader name="Content-Disposition" value="inline; filename=#OutputFilename#"/>
<cfcontent file="./#OutputFilename#" reset type="application/zip"/><cfsetting showdebugoutput="false"/><cfabort/>
编辑:本cgit Web界面的Git支持这一开箱即用。查看任何提交,你可以下载一个.zip,.tar.gz或.tar.bz2
答
如果您拥有ssh存取git存储库所在机器的ssh权限,那么您只需将(1)git存储库添加到本地机器即可。当你想要合并历史记录时,你可以将新的repo回收并合并。
嗯,是不是因为某些原因scp/rsync工作? – 2009-02-27 15:51:09
你说的shell脚本..所以只是想知道:) – 2009-02-27 15:52:01
事情是,我只能访问git:// my_project,而不是完整的shell访问:-( – 2009-02-28 15:21:22