#git #github #jgit
#git #github #jgit
Вопрос:
Поскольку это необходимо для моей работы, мне нужно загрузить только объект фиксации в ./git/objects
из удаленного репозитория git. /.git/
метаданные содержат некоторую полезную информацию. Но в файл pack включите объект commit / tree / blob. объекты tree / blob слишком велики, поэтому объект tree / blob не следует загружать. Возможно, мне нужно перестроить клиент git или написать скрипт на python.
Я видел несколько проектов (например https://github.com/lijiejie/GitHack
).Он загружает файлы шаг за шагом, разбирая index
файл, и, наконец, объекты commit / tree / blob разделяются после загрузки.
введите описание изображения здесь
Но для этого метода требуется доступ к .git
папке через HTTP, и вы не можете загрузить индексный файл непосредственно с github.
Я не понимаю, как github взаимодействует с клиентом git.
Я попытался взглянуть на базовый исходный код для C(https://github.com/git/git ) и Java(https://github.com/eclipse/jgit), но сложная структура озадачила меня.
Есть ли какой-либо способ реализовать функцию загрузки только объекта фиксации? Или как я могу помочь себе найти ключевой код в базовом исходном коде.
Если вы знаете, как это сделать, пожалуйста, дайте мне знать. большое вам спасибо.
PS: Мне нужно загрузить некоторый файл .git
из github / gitlab (общедоступных репозиториев). Но --filter=blob:none
в github получите warning: filtering not recognized by server, ignoring
. И API github имеют строгие ограничения.
Комментарии:
1. какое-либо использование так называемого «объекта фиксации»?
2. фиксация содержит информацию о фиксации. например:
git cat-file -p 171a2e1
. эта команда может отображать информацию в объекте фиксации.3. вы настраиваете веб-сервер, и он может запускать команды git локально (на сервере git), поэтому ваш клиент может получать журналы, не нужно ничего загружать. разве это не более облегченно?
4. спасибо за ваше предложение. но мне нужно выполнить некоторую аналитическую работу в github / gitlab. Итак, это нужно в общедоступной сети и достаточно быстро.
5. Полное время клонирования слишком велико, когда мне приходится обрабатывать информацию по всей сети. А API github ограничит количество посещений.