2009-02-27 108 views
15

我在网上保存了很多git仓库中的东西。问题是我经常发现自己在没有git的机器上,而且我也没有root权限。我不一定需要将修改提交回repo,只需获取git项目的当前主控。我可以下载没有git的git存储库吗?

有没有办法下载一个git仓库,而不需要git本身?理想的解决方案是某种可移植的shell脚本。

谢谢!

+1

嗯,是不是因为某些原因scp/rsync工作? – 2009-02-27 15:51:09

+0

你说的shell脚本..所以只是想知道:) – 2009-02-27 15:52:01

+0

事情是,我只能访问git:// my_project,而不是完整的shell访问:-( – 2009-02-28 15:21:22

回答

4

这听起来像你正在寻找的东西,可以让你有一个本地工作目录与您的实际git存储库远程。

由于那种有点违背总是让你的整个版本库历史本地的git philsophy,我怀疑你会找到任何东西。你最好的选择可能是通过典型的文件复制方法(ftp,tarball或其他)复制另一个git工作目录中的源代码。

编辑: OOC,是否git客户端实际上需要管理员访问权限以供个人使用安装?我知道需要管理员来安装其中一个git服务器,但客户端只需用户访问即可。尝试安装(或从源代码编译)客户端。

5

您可以将基于Web的Git浏览器添加到托管这些存储库的计算机上吗?像Gitweb或类似的东西?

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/> 


编辑:本cgit Web界面的Git支持这一开箱即用。查看任何提交,你可以下载一个.zip,.tar.gz或.tar.bz2

6

如果您拥有ssh存取git存储库所在机器的ssh权限,那么您只需将(1)git存储库添加到本地机器即可。当你想要合并历史记录时,你可以将新的repo回收并合并。

相关问题