是否有一种简单的方法可以从不同的git分支(本地或远程)导出单个文件而无需检出该分支?
答案 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
当前分支将保持不变,但另一个文件也将存在。它也将被添加到索引中。