从github远程仓库中输出git

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

我读过它可以使用git归档来实现这一点。

不过,我得到以下错误..

$ 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

任何帮助都会很棒。 谢谢。


感谢GitHub提供的Subversion支持,您可以使用svn export来获取没有任何版本控制文件的项目:

svn export https://github.com/user/project/trunk

注意URL格式:

  • 基本URL是https://github.com/
  • USERNAME/PROJECTNAME不带.git
  • /trunk添加在最后
  • 这样你就可以得到分支和子目录。

    这将创建一个包含导出文件的目录。 无法直接创建tar / zip,您必须分两步执行(导出+ 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/tags https://github.com/username/projectname/branches和tags中找到分支https://github.com/username/projectname/tags

    在错误地导出大的内容之前,先检查路径的内容是很好的。 例如,你可以使用svn ls来做到这一点。

    svn ls https://github.com/username/projectname/
    

    通常这应该给你:

    branches/
    tags/
    trunk/
    

    你可以用这种方法反复探索资源库。


    如果你只想从GitHub导出,那么他们提供了一个下载tar包的机制。 例如:

    https://github.com/torvalds/linux/downloads

    尽管它说“这个存储库没有任何下载”。 您仍然可以使用这些按钮来下载主分支的tarball。

    或者查看此链接以获取与标签链接的tarball列表:

    https://github.com/torvalds/linux/tags

    这应该适用于任何GitHub仓库,而不仅仅是Linux内核。


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

    git clone --depth=1 git@github.com:xxx/yyy.git && rm -rf yyy/.git
    
    链接地址: http://www.djcxy.com/p/90451.html

    上一篇: git export from github remote repository

    下一篇: In Git, what is the difference between origin/master vs origin master?