Есть ли простой способ экспортировать один файл из другого ветки git (локального или удаленного) без проверки этой ветки?
Экспортировать файл из другой ветки git
Ответ 1
Вы можете сделать следующее:
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
Ответ 2
Да
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
и др.
Ответ 3
Вы можете выбрать конкретный файл из справки:
git checkout branch_or_hash path/to/file
Текущая ветка останется неизменной, но другой файл также будет присутствовать. Он также будет добавлен в индекс.