从远程git存储库获取单个文件内容的最有效机制(就传输的数据和使用的磁盘空间而言)是什么?
到目前为止,我已经想出了:
git clone --no-checkout --depth 1 git@github.com:foo/bar.git && cd bar && git show HEAD:path/to/file.txt
这似乎还是有些过分。
从回购中获取多个文件呢?
从远程git存储库获取单个文件内容的最有效机制(就传输的数据和使用的磁盘空间而言)是什么?
到目前为止,我已经想出了:
git clone --no-checkout --depth 1 git@github.com:foo/bar.git && cd bar && git show HEAD:path/to/file.txt
这似乎还是有些过分。
从回购中获取多个文件呢?
当前回答
对于单个文件,只需使用wget命令。
首先,按照下面的图片点击“raw”来获取url,否则你将下载嵌入html中的代码。
然后,浏览器将打开一个新页面,url以https://raw.githubusercontent.com/开头…
只需在终端输入命令:
#wget https://raw.githubusercontent.com/...
一会儿文件就会放在你的文件夹里。
其他回答
如果你的Git存储库托管在Azure-DevOps (VSTS)上,你可以使用Rest API检索单个文件。
这个API的格式是这样的:
https://dev.azure.com/{organization}/_apis/git/repositories/{repositoryId}/items?path={pathToFile}&api-version=4.1?download=true
例如:
https://dev.azure.com/{organization}/_apis/git/repositories/278d5cd2-584d-4b63-824a-2ba458937249/items?scopePath=/MyWebSite/MyWebSite/Views/Home/_Home.cshtml&download=true&api-version=4.1
Github企业解决方案
HTTPS_DOMAIN=https://git.your-company.com
ORGANISATION=org
REPO_NAME=my-amazing-library
FILE_PATH=path/to/some/file
BRANCH=develop
GITHUB_PERSONAL_ACCESS_TOKEN=<your-access-token>
URL="${HTTPS_DOMAIN}/raw/${ORGANISATION}/${REPO_NAME}/${BRANCH}/${FILE_PATH}"
curl -H "Authorization: token ${GITHUB_PERSONAL_ACCESS_TOKEN}" ${URL} > "${FILE_PATH}"
一般来说不是,但如果你使用Github:
对我来说,wget到原始url是下载一个特定文件的最佳和最简单的方法。
在浏览器中打开文件,点击“Raw”按钮。现在刷新浏览器,复制url并对其执行wget或curl操作。
wget的例子:
wget 'https://github.abc.abc.com/raw/abc/folder1/master/folder2/myfile.py?token=DDDDnkl92Kw8829jhXXoxBaVJIYW-h7zks5Vy9I-wA%3D%3D' -O myfile.py
旋度的例子:
curl 'https://example.com/raw.txt' > savedFile.txt
如果你想从一个特定的散列+远程存储库中获取一个文件,我尝试过git-archive,但它不起作用。
你必须使用git克隆,一旦存储库克隆出来,你就必须使用git-archive来让它工作。
我发布了一个关于如何从远程的特定哈希在git存档中更简单地做到这一点的问题
在我看来,这是一个解决方案:http://gitready.com/intermediate/2009/02/27/get-a-file-from-a-specific-revision.html
git show HEAD~4:index.html > local_file
其中4表示从现在开始的四次修订,~是注释中提到的波浪号。