如何使用下载GitHub项目的所有文件wget
?
所有文件都应以其原始形式下载。
已经尝试过:
wget -P ~/ https://raw.githubusercontent.com/u/p/b/*
wget -P ~/ https://raw.githubusercontent.com/u/p/b/{*}
wget -P ~/ --accept-regex urlregex https://raw.githubusercontent.com/u/p/b/*
wget -P ~/ --recursive https://raw.githubusercontent.com/u/p/b/
这与wget -P ~/ https://raw.githubusercontent.com/u/p/b/{file1,file2...}
u=用户,p=项目,b=分支。
答案1
这是一种方法:
wget -P ~/ https://github.com/u/p/a/master.zip
unzip ~/master.zip
这是另一个:
cd
wget https://github.com/u/p/a/master.zip
unzip master.zip
u=用户,p=项目,a=存档。
答案2
简短版本:你不能。
较长版本 1:如果您尝试克隆 git 工作目录,则该目录需要位于您的 下$WEBROOT
,以便您的 Web 服务器可以查看并提供文件。
更长的版本 2:如果您尝试克隆裸 git
存储库,这些文件实际上并不以原始形式存在。它们是项目对象数据库中的条目。
最好的主意:
git clone http://...
答案3
这在存储库上对我有用,尽管它需要一个名为的工具json
(类似于 jq)并且我不建议这样做git clone
。
#!/bin/bash
MY_REPO='/jessebutryn/wtfisbash'
GIT_API='https://api.github.com/repos'
GIT_URI='/contents'
CURL_OPTS=(
-X
GET
)
REPO_DIRS=($(curl "${CURL_OPTS[@]}" "${GIT_API}${MY_REPO}${GIT_URI}" \
| json -a -c "type === 'dir'" name))
REPO_FILES=($(curl "${CURL_OPTS[@]}" "${GIT_API}${MY_REPO}${GIT_URI}" \
| json -a -c "type === 'file'" download_url))
for dir in "${REPO_DIRS[@]}"; do
REPO_FILES+=($(curl "${CURL_OPTS[@]}" "${GIT_API}${MY_REPO}${GIT_URI}/${dir}" \
| json -a -c "type === 'file'" download_url))
done
for file in "${REPO_FILES[@]}"; do
wget -P ./ "${file}"
done
我还应该注意,这仅适用于深度达一个目录的文件。如果你有更多的目录,我相信你可以弄清楚如何用这个深入研究它们——但这开始让我头疼。