Клонирование единственного пути из репозитория git - PullRequest
2 голосов
/ 01 сентября 2009

Я пытаюсь добавить хук после фиксации в пустой репозиторий, чтобы при выполнении фиксации измененные файлы автоматически устанавливались в (жестко закодированный) каталог.

Есть ли способ получить один файл из хранилища?

Похоже, git-clone не позволяет указывать путь, и любые другие команды, которые я нашел (git-fetch, git-pull), по-видимому, требуют работы локального репозитория git.

Есть ли способ сделать это?

Ответы [ 2 ]

3 голосов
/ 25 июня 2010

Вы можете извлечь один файл из любой ревизии в пустом хранилище с помощью git show, используя синтаксис git show <rev>:<filename>, например ::

 $ ls
 branches  config  description  HEAD  hooks  info  objects  packed-refs  refs
 $ git show master:COPYING > /tmp/COPYING
 $ head -5 /tmp/COPYING
                     GNU GENERAL PUBLIC LICENSE
                        Version 3, 29 June 2007

  Copyright (C) 2007 Free Software Foundation, Inc. 
  Everyone is permitted to copy and distribute verbatim copies

На странице руководства git-show (1) есть пара примеров . Надеюсь, это пригодится.

2 голосов
/ 01 сентября 2009

Ответы вы можете найти в: Как сделать "экспорт git"

В частности, git checkout-index, вероятно, выполнит работу за вас:

git checkout-index -a -f --prefix=/destination/path/

Не забывайте завершающий слеш, иначе эта команда не будет делать именно то, что вы хотите.

...