我在git存储库中保留了很多东西,在网上。问题是我经常发现自己在没有git的机器上,而且我也没有root权限。我不一定需要将更改提交回repo,只需获取git项目的当前主数据。
有没有办法下载git repo,没有git本身?理想的解决方案是某种便携式shell脚本。
谢谢!
答案 0 :(得分:15)
在具有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/>
编辑:git的 cgit 网络界面支持此功能。查看任何提交,您可以下载.zip,.tar.gz或.tar.bz2
答案 1 :(得分:6)
如果您对git存储库所在的机器具有ssh访问权限,则可以将git存储库scp(1)到本地计算机。如果要合并历史记录,可以将新的仓库scp返回并合并。
答案 2 :(得分:5)
您可以在托管这些存储库的计算机上添加基于Web的Git浏览器吗?像Gitweb或类似的东西?
答案 3 :(得分:4)
听起来你正在寻找的东西可以让你拥有一个与你的实际git存储库远程的本地工作目录。
由于这种情况违背了总是让你的整个存储库历史本地的git philsophy,我怀疑你会找到任何东西。你最好的选择可能是通过典型的文件复制方法(ftp tarball,或其他任何东西)从另一个git工作目录中复制源代码。
编辑: OOC,git客户端实际上需要管理员访问权限才能安装供个人使用吗?我理解需要管理员安装其中一个git服务器,但客户端应该没有用户访问权限。尝试仅在客户端安装(或从源代码编译)。