экспортировать файл из другой ветки git - PullRequest
13 голосов
/ 16 мая 2011

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

Ответы [ 3 ]

14 голосов
/ 16 мая 2011

Вы можете сделать следующее:

 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
3 голосов
/ 16 мая 2011

Да

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 голосов
/ 16 мая 2011

Вы можете выбрать извлечение определенного файла из ссылки:

git checkout branch_or_hash path/to/file

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...