Скачивайте конкретные файлы с github в командной строке, а не клонируйте весь репозиторий - PullRequest
14 голосов
/ 06 февраля 2012

Как мне загрузить только 2 файла с github с помощью командной строки?
Что-то в строках:

git fetch git://github.com/username/Project.git/file1
git fetch git://github.com/username/Project.git/file2

Ответы [ 4 ]

24 голосов
/ 06 февраля 2012

Если перейти на страницу и просмотреть ссылки, предоставленные «raw» (в левом верхнем углу, при просмотре файла). Вы увидите, что вы можете получить к нему доступ:

https://github.com/username/repository/raw/$changeset_hash/path/to/file

Вместо $changeset_hash вы также можете указать ветку (например, master) или тег.

Вы можете получить необработанный файл, используя что-то вроде wget.

Доступ к одному файлу напрямую из .git-репозитория невозможен (насколько я знаю) из-за того, как хранятся данные.

edit: Если вы хотите получить доступ к файлу из частного репо, сначала вам нужно создать токен доступа с соответствующими разрешениями в настройках вашей учетной записи. Вместо того, чтобы вызывать указанный выше URL, вы можете использовать API github для доступа к содержимому файла . Обязательно используйте заголовок Accept для пользовательских типов носителей , чтобы получить необработанные данные. Это может выглядеть примерно так:

curl \
  -H 'Authorization: token $YOUR_TOKEN' \
  -H 'Accept: application/vnd.github.v3.raw' \
  -O \
  -L 'https://api.github.com/repos/:owner/:repo/contents/:path'

-O сохранит содержимое в локальном файле с тем же именем, что и имя удаленного файла. Для более легкого использования вы можете заключить его в скрипт. @Chris_Withers предложил редактирование с хорошим фрагментом Python, который, к сожалению, был отклонен в связи с большими изменениями в ответе.

15 голосов
/ 02 июня 2015

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

Теперь используйте команду curl в командной строке для загрузки файла.

curl -o filename raw-link-to-file
1 голос
/ 06 февраля 2012
git checkout  

Например:

git checkout master~2 file1

(git checkout --help для помощи)

0 голосов
/ 18 сентября 2018

Вы можете попробовать github-files-fetcher , это инструмент командной строки, который загружает одну папку или файл из репозитория GitHub.

Учитывая приведенный выше пример, вы можете использовать следующую команду для извлечения двух конкретных файлов из github:

fetcher --url="git://github.com/username/Project.git/file1" 
fetcher --url="git://github.com/username/Project.git/file2" 

Придумайте более реальный сценарий: вы посещали следующую страницу веб-страницы и хотите загрузить только подкаталог async.

https://github.com/reduxjs/redux/tree/master/examples

извините за то, что запрещено публиковать изображения.

С помощью github-files-fetcher вы должны сначала скопировать url этой страницы, то есть https://github.com/reduxjs/redux/tree/master/examples/async,, а затем выполнить команду ниже в командной строке:

fetcher --url=https://github.com/reduxjs/redux/tree/master/examples/async

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