Git-эквивалент `svn cat` с удаленным репозиторием - PullRequest
23 голосов
/ 15 мая 2010

Я ищу эквивалент svn cat в мерзавце.

Да, я знаю, что аналогичный вопрос был задан здесь. Ответ должен использовать git show rev:path.

Однако, svn cat может использоваться для удаленного хранилища. То есть я могу сделать svn cat url@rev и получить файл из указанной ревизии удаленного репозитория без получения всего репозитория. Насколько я понимаю, git show относится только к локальному хранилищу.

Обходной путь, который я нашел, - использовать интерфейс gitweb для получения BLOB-объекта.

Ответы [ 4 ]

9 голосов
/ 05 мая 2011

Если вы хотите минимизировать объем загружаемых и / или хранимых данных на локальном диске, вы можете попробовать следующие команды.

git clone --depth=1 --bare REPO
cd REPO.git
git show HEAD:PATH/TO/FILE

--depth=1 означает, что вы загрузите только самую последнюю ревизию, а не историю. --bare означает, что вы загрузите удаленный репозиторий, но на самом деле не создадите никакого рабочего дерева, сэкономив место на локальном диске.

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

9 голосов
/ 23 ноября 2012
git fetch
git show remotes/origin/master:<filename>

Очевидно, что ваша удаленная ветвь может быть не на remotes/origin/master.

8 голосов
/ 20 августа 2014

Вот хак , который вы можете использовать с последними версиями Git для получения одного файла из удаленного репозитория (к которому у вас есть доступ Git) без клонирования репо:

git archive --remote=git@gitserver.example.com:myrepo master path/to/file1 | tar -xOf - > file1

Приведенный выше файл получает от master. Изменить в соответствии с вашими потребностями.

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

В другом потоке упоминается, что невозможно получить один файл. Поэтому единственными вариантами являются выборка удаленного репозитория или просмотр файла с помощью другого инструмента (например, веб-браузера).

Github имеет отличную поддержку для просмотра файлов в Интернете, вы можете интегрировать это с curl, если хотите остаться в командной строке. Для других репозиториев таких функций может не быть.

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