我想从github远程存储库导出,而不是克隆它。类似于svn导出,我不想用它来获取.git文件夹。我可以通过克隆和删除.git文件夹来解决这个问题。我想知道有没有更干净的方法?
我在某个地方读到了它,你可以使用git archive来实现这一点。
然而,我得到了以下错误。
$ 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任何帮助都是最好的。谢谢。
发布于 2013-08-20 06:56:22
多亏了GitHub对Subversion的支持,您可以使用svn export获得没有任何版本控制文件的项目:
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的目录中创建导出。如果您愿意,可以指定不同的名称:
svn export https://github.com/username/projectname/trunk projectname您可以使用此技术导出项目的任何子目录。例如,如果您只想要some/path,您可以这样做:
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来实现这一点,例如:
svn ls https://github.com/username/projectname/通常情况下,这将为您提供:
branches/
tags/
trunk/您可以以这种方式迭代地探索存储库。
发布于 2017-03-29 04:20:11
出于未知(至少对我而言)的原因,GitHub doesn't support this。
We don’t support people running git-archive against our servers.看起来很傻,因为通过SVN你可以,但是...我选了@Janos' answer。
发布于 2012-03-08 06:09:53
如果您的目标是限制与服务器交换的信息数量,您是否考虑过在--depth中使用clone?不过,您仍然需要删除(大大减少)的.git子目录:
git clone --depth=1 git@github.com:xxx/yyy.git && rm -rf yyy/.githttps://stackoverflow.com/questions/9609835
复制相似问题