首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从github远程存储库导出git

从github远程存储库导出git
EN

Stack Overflow用户
提问于 2012-03-08 06:03:34
回答 10查看 38.4K关注 0票数 55

我想从github远程存储库导出,而不是克隆它。类似于svn导出,我不想用它来获取.git文件夹。我可以通过克隆和删除.git文件夹来解决这个问题。我想知道有没有更干净的方法?

我在某个地方读到了它,你可以使用git archive来实现这一点。

然而,我得到了以下错误。

代码语言:javascript
复制
$ git archive --format=tar --remote=git@github.com:xxx/yyy.git master | tar -xf -

Invalid command: 'git-upload-archive 'xxx/yyy.git''
You appear to be using ssh to clone a git:// URL.
Make sure your core.gitProxy config option and the
GIT_PROXY_COMMAND environment variable are NOT set.
fatal: The remote end hung up unexpectedly

任何帮助都是最好的。谢谢。

EN

回答 10

Stack Overflow用户

发布于 2013-08-20 06:56:22

多亏了GitHub对Subversion的支持,您可以使用svn export获得没有任何版本控制文件的项目:

代码语言:javascript
复制
svn export https://github.com/user/project/trunk

请注意URL格式:

基本URL为https://github.com/

  • USERNAME/PROJECTNAME,末尾不附加.git

  • /trunk

这样你也可以得到分支和子目录。

这将创建一个包含导出文件的目录。直接创建tar/zip是不可能的,您必须通过两个步骤(export + zip)来完成。这是svn export本身的限制。

正如@Jon所指出的,默认情况下,这将在名为trunk的目录中创建导出。如果您愿意,可以指定不同的名称:

代码语言:javascript
复制
svn export https://github.com/username/projectname/trunk projectname

您可以使用此技术导出项目的任何子目录。例如,如果您只想要some/path,您可以这样做:

代码语言:javascript
复制
svn export https://github.com/username/projectname/trunk/some/path local-dir-name

你也可以从分支和标签中获取路径。端点https://github.com/username/projectname的行为完全像一个具有常规布局的Subversion存储库,因此您可以在https://github.com/username/projectname/branches中找到分支,在https://github.com/username/projectname/tags中找到标记。

在错误地导出较大的内容之前,最好先检查路径的内容。您可以使用svn ls来实现这一点,例如:

代码语言:javascript
复制
svn ls https://github.com/username/projectname/

通常情况下,这将为您提供:

代码语言:javascript
复制
branches/
tags/
trunk/

您可以以这种方式迭代地探索存储库。

票数 66
EN

Stack Overflow用户

发布于 2017-03-29 04:20:11

出于未知(至少对我而言)的原因,GitHub doesn't support this

代码语言:javascript
复制
We don’t support people running git-archive against our servers.

看起来很傻,因为通过SVN你可以,但是...我选了@Janos' answer

票数 14
EN

Stack Overflow用户

发布于 2012-03-08 06:09:53

如果您的目标是限制与服务器交换的信息数量,您是否考虑过在--depth中使用clone?不过,您仍然需要删除(大大减少)的.git子目录:

代码语言:javascript
复制
git clone --depth=1 git@github.com:xxx/yyy.git && rm -rf yyy/.git
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9609835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档