从不同的git分支导出文件

时间:2011-05-16 13:37:05

标签: git

是否有一种简单的方法可以从不同的git分支(本地或远程)导出单个文件而无需检出该分支?

3 个答案:

答案 0 :(得分:14)

您可以执行以下操作:

 git show experiment:docs/README.txt > /tmp/exported-README.txt

...对于本地分支experiment。对于您使用远程origin引用的存储库中的分支,您可以执行以下操作,类似地:

 git fetch origin
 git show origin/other-experiment:docs/README.txt > /tmp/exported-README-remote.txt

答案 1 :(得分:3)

git show remote/branchname:path/to/file

如果您想直接保存,可能会派上用场:

git_showfile () 
{ 
    if [ $# -lt 1 ]; then
        return 255;
    fi;
    local fspec="$1";
    shift;
    local fname="$(basename "$fspec")";
    local fpath="$(dirname "$fspec")";
    local revision=HEAD;
    if [ $# -ge 1 ]; then
        revision="$1";
    fi;
    if [ -e "$fspec" ]; then
        echo not overwriting existing file;
    else
        mkdir -pv "$fpath" && git show "$revision:$fspec" > "$fspec";
    fi
}

编辑 ...您将按照以下方式使用

git_showfile path/to/file 

git_showfile path/to/file 237f723edcb89

答案 2 :(得分:2)

您可以选择从参考文件中签出特定文件:

git checkout branch_or_hash path/to/file

当前分支将保持不变,但另一个文件也将存在。它也将被添加到索引中。

相关问题