如何从GitHub下载无法访问本地计算机上的“ git”的私有存储库?


9

我想做的是从GitHub下载私有存储库归档文件,将其解压缩,删除归档文件并复制下载项目内部的某些目录。

我尝试使用,wget但无法授权自己:

wget --header='Authorization: token MY_TOKEN_CREATED_ON_GITHUB' https://github.com/MY_USER/MY_REPO/archive/master.tar.gz -O - | tar xz

我也尝试过cURL

curl -i -H 'Authorization: token MY_TOKEN_CREATED_ON_GITHUB' https://github.com/MY_USER/MY_REPO/archive/master.tar.gz > file.tar.gz | tar xz

授权通过了,但是我无法解压缩文件。

怎么做?


你为什么不只用git clone https://github.com/MY_USER/MY_REPO呢?
Tero Kilkanen 2014年

1
因为我在没有git的服务器上执行此操作。
卡米尔·莱洛内克2014年

Answers:


4

解决方案wget将类似于:

wget --header="Authorization: token <OAUTH-TOKEN>" -O - \
    https://api.github.com/repos/<owner>/<repo>/tarball/<version> | \
    tar xz --strip-components=1 && \
    cp -r <dir1> <dir2> ... <dirn> <destination-dir>/

笔记:

  • --strip-components=1 将删除GitHub创建的归档文件中包含的顶级目录,
  • 请确保你不把尾随/的是与被复制目录的结束cp<dir1><dir2>,... <dirn>),而尾部/出现在目标目录的结束(<destination-dir>)。

0

如果您有自己的“个人访问令牌”,则可以使用curl命令下载存储库分支的归档文件:

curl -k --header "PRIVATE-TOKEN: xxxx" https://gitlab.xxxxx/api/v4/projects/<projectID>/repository/archive?sha=630bc911c1c20283d3980dcb95fd5cb75479bb9c -o myFilename.tar.gz

ProjectID显示在存储库的主页上。

从下拉菜单中选择所需的分支,然后在右侧复制SHA的值,然后可以从webUI获取SHA值。请参见下面的屏幕截图:

在此处输入图片说明

另一种方法是通过wget像这样:

wget --no-check-certificate -O myFilename.zip --header=PRIVATE-TOKEN:xxxx "https://gitlab.xxxx/api/v4/projects/<projectID>/repository/archive.zip?sha=630bc911c1c20283d3980dcb95fd5cb75479bb9c"

希望对您有所帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.