Подтвердить что ты не робот

Экспортировать файл из другой ветки git

Есть ли простой способ экспортировать один файл из другого ветки git (локального или удаленного) без проверки этой ветки?

4b9b3361

Ответ 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

Текущая ветка останется неизменной, но другой файл также будет присутствовать. Он также будет добавлен в индекс.