我是git和github的新手(之前我使用过Subversion)。我找不到如何将master分支从我的私有存储库导出到生产服务器的解决方案。
我需要准备一个自动化解决方案(通过面料调用)。我发现git有archive命令,但这不适用于github(我设置了SSH密钥):
someuser@ews1:~/sandbox$ git archive --format=tar --remote=git@github.com:someuser/somerepository.git master
Invalid command: 'git-upload-archive 'someuser/somerepository.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
所以我需要另一种方法来做到这一点。我不想在导出中使用git中的任何元文件。当我做克隆时,我将把所有这些文件放在.git目录中(我不想要的),这会下载比我真正需要的更多的数据。
有没有办法在ssh上做到这一点?或者我只能通过HTTPS下载zip?
答案 0 :(得分:2)
我不确定我完全理解你的问题。
我使用此命令将当前主版本拉到我的服务器:
curl -sL --user "user:pass" https://github.com/<organisation>/<repository>/archive/master.zip > master.zip
这有帮助吗?
答案 1 :(得分:0)
正如我在SO answer on downloading GitHub archives from a private repo中所解释的,在创建GitHub access token后,您可以使用wget
或curl
来获取所需的<version>
回购广告(例如master
,HEAD
,提交SHA-1,...)。
wget
的解决方案:
wget --output-document=<version>.tar.gz \
https://api.github.com/repos/<owner>/<repo>/tarball/<version>?access_token=<OAUTH-TOKEN>
curl
的解决方案:
curl -L https://api.github.com/repos/<owner>/<repo>/tarball/<version>?access_token=<OAUTH-TOKEN> \
> <version>.tar.gz