Как скачать последний файл из репозитория GitHub? - PullRequest
1 голос
/ 09 июня 2019

Я очень новичок в GitHub. Я пытаюсь загрузить JSON файлы из репозитория на GitHub. Каждый день выпускается новый файл .json. Есть ли способ в Python / Git найти этот последний файл, загруженный из папки, полной файлов JSON, и загрузить его. Я не хочу клонировать всю папку каждый день.

1 Ответ

1 голос
/ 09 июня 2019

Есть несколько способов;некоторые специфичны для GitHub.В частности, GitHub предоставляет конечную точку веб-службы для загрузки одного конкретного файла из одного конкретного коммита, и вы можете ссылаться на коммит через имя ветви (чтобы GitHub разрешил для вас хэш-идентификатор фиксации):

https://raw.githubusercontent.com/git/git/master/checkout.c

Например, вы получаете checkout.c из любого коммита, который master идентифицирует в данный момент в репозитории Git по адресу github.com/git/git.

Если вы беспокоитесь о клонировании, то:

Я не хочу клонировать всю папку каждый день.

Во-первых, вы не клонируете папку .Вы клонируете хранилище .Как только вы это сделаете, у вас есть все коммитов для всех файлов, и на следующий день вы можете просто запустить git fetch в этом хранилище, которое получит new коммитов при сохранении всех существующих коммитов.Git очень эффективен в этих обновлениях.В зависимости от используемого файла JSON и других действий с хранилищем, это может быть на быстрее , чем загрузка одного необработанного файла.

Если хранилище предназначено только для чтения, а восходящий поток ведет себя хорошовы можете запустить git pull вместо git fetch, а затем выполнить вторую команду Git.Вторая команда Git будет git merge, а git pull означает run git fetch, затем запустите вторую команду Git , и для второй команды по умолчанию будет git merge.Шаг слияния в этом случае будет fast-forward операция.

(Если восходящий репозиторий не хорошо себя ведет, ваша вторая команда будет git reset --hard origin/masterи вам понадобятся две команды.)

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