Я очень новичок в GitHub. Я пытаюсь загрузить JSON
файлы из репозитория на GitHub. Каждый день выпускается новый файл .json
. Есть ли способ в Python/Git найти этот последний файл, загруженный из папки, полной файлов JSON
, и загрузить его. Я не хочу клонировать всю папку каждый день.
Я не знал об этом. Если это правда, то это как раз то, что мне нужно.
Есть несколько способов; некоторые специфичны для GitHub. В частности, GitHub предоставляет конечную точку веб-службы для загрузки одного конкретного файла из одной конкретной фиксации, и вы можете ссылаться на фиксацию через имя ветки (чтобы GitHub разрешил для вас хэш-идентификатор фиксации):
https://raw.githubusercontent.com/git/git/master/checkout.c
например, выводит вас checkout.c
из любого коммита master
, идентифицируемого в данный момент в репозитории Git по адресу github.com/git/git
.
Однако, если вы беспокоитесь о клонировании:
I don't want to clone the entire folder every day.
Во-первых, вы не клонируете папка. Вы клонируете хранилище. Как только вы это сделаете, у вас будет все коммитов для все файлов, и на следующий день вы можете просто запустить git fetch
в этом репозитории, который получит коммиты новый, сохранив при этом все существующие коммиты. Git очень эффективен в этих обновлениях. В зависимости от задействованного файла JSON и других действий в репозитории это может быть Быстрее, чем загрузка одного необработанного файла.
Если репозиторий доступен только для чтения, а исходный поток работает нормально, вы можете запустить git pull
вместо git fetch
, а затем вторую команду Git. Второй командой Git будет git merge
, а git pull
означает запустите git fetch
, затем запустите вторую команду Git, а вторая команда по умолчанию — git merge
. Шаг слияния в этом случае будет операцией перемотка вперед.
(Если вышестоящий репозиторий нет ведет себя хорошо, ваша вторая команда будет git reset --hard origin/master
, и вам понадобятся две команды.)
Разве вы не будете вносить изменения в существующую копию каждый день после ее клонирования один раз?