在一个生产环境中,我想要从GitHub检出一个特定版本的文件以方便数据库迁移。我不想检出(甚至克隆)整个源代码仓库(因为这是我的生产环境)。我该如何只拉取我需要的文件?
在一个生产环境中,我想要从GitHub检出一个特定版本的文件以方便数据库迁移。我不想检出(甚至克隆)整个源代码仓库(因为这是我的生产环境)。我该如何只拉取我需要的文件?
我用以下方式为骨架创建循环
curl -O https://raw.github.com/documentcloud/backbone/master/backbone-min.js
curl https://raw.githubusercontent.com/MasterSergius/conf_files/master/.vimrc -o ~/.vimrc
-O
替换-o
标志,它将使用来自服务器的文件名,而无需显式指定本地文件名,但代价是必须从目标文件夹内运行命令。你也可以使用文件名中的{thing1,thing2,etc}
迭代多个文件。通过这两个选项,我能够非常快速地下载一组CSV种子数据文件,以供课程项目使用。 - joequincyhttp
提供的git存储库下载单个文件目前是不可能的。我相信GitHub有一个单独的“下载”功能,他们希望人们使用它来代替(但我不知道它是否支持下载单个文件)。git-cat() {
if [ -z "$1" -o -z "$2" ]; then
echo "Usage: git-cat REPO_URL FILE [BRANCH]"
exit 1
fi
tmprepo=`mktemp -d -t gitrepo.XXXXXX`
reponame=$1
filename=$2
branchname=$3
if [ -z "$branchname" ]; then
branchname="master"
fi
git clone -nq $reponame $tmprepo &&
git --git-dir $tmprepo/.git show ${branchname}:${filename} &&
rm -rf $tmprepo
}