Как изменить функцию клона Git - PullRequest
0 голосов
/ 14 марта 2019

Поскольку моя работа требует, мне нужно загрузить только объект фиксации в ./git/objects из удаленного репозитория git./.git/ метаданные содержат некоторую полезную информацию.Но в файл пакета включите объект commit / tree / blob.объекты дерева / блоба слишком велики, поэтому их не следует загружать.Может быть, мне нужно пересобрать клиент git или написать скрипт на python.

Я видел несколько проектов (например, https://github.com/lijiejie/GitHack). Он скачивал файлы шаг за шагом, анализируя файл index, и, наконец, выполнял коммит/ tree / blob объекты отделяются после загрузки.

введите описание изображения здесь

Но для этого метода необходим доступ к папке .git через HTTP, и вы можетескачайте индексный файл прямо с github.

Я не понимаю, как github взаимодействует с git-клиентом.

Я попытался взглянуть на исходный код для C (https://github.com/git/git) и Java (*).1021 * но сложная структура меня озадачила.

Есть ли способ реализовать функцию загрузки только объекта фиксации? Или как я могу помочь найти код ключа в исходном коде.

Если вы знаете, как это сделать, пожалуйста, дайте мне знать. Большое спасибо.

PS: Мне нужно скачать какой-нибудь файл .git из github / gitlab (публичные репозитории). Но --filter=blob:noneв github recive warning: filtering not recognized by server, ignoring. И API github имеют сильные ограничения.

...