如何在不克隆整个存储库的情况下从GitHub中检出单个文件?

Nie*_*Wet 6 github

在生产机器上,我想查看GitHub特定版本的特定文件,以方便数据库迁移.我不想签出(甚至克隆)整个源代码库(因为这是我的生产环境).我怎样才能只提取我要查找的文件?

Kev*_*vin 11

我是这样做的骨干

curl -O https://raw.github.com/documentcloud/backbone/master/backbone-min.js
Run Code Online (Sandbox Code Playgroud)


Pau*_*ice 3

据我所知,从 git 存储库下载单个文件http目前是不可能的。我相信 GitHub 有一个单独的“下载”功能,他们希望人们使用它(但我不知道它是否支持下载单个文件)。

解决方法是克隆整个存储库(!),然后提取感兴趣的文件。这是一个完成这项工作的 bash 函数:

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
}
Run Code Online (Sandbox Code Playgroud)