При использовании Git в развертывании часто требуется знать историю и отношения коммитов. Когда репо мало, проблем нет. Но для больших репозиториев, чтобы получить полную историю, необходимо выбрать все объекты. Эта операция требует большой полосы пропускания и занимает много времени.
Итак, проблема:
нужно работать с историей большого репозитория Git без извлечения контента.
Было бы неплохо получить несколько МБ и начать работать git log
, git rev-parse
, git rev-list
и т. Д. Без возможности извлечения содержимого.
idea1. выделенная ветка _metainfo с необработанным выводом из журнала git
Сохранить вывод git log
в выделенную ветку.
Но этот подход потребует собственного парсера.
Это подходит для очень простых задач.
idea2. обрезать содержимое файла
git filter-branch tree-filter "echo >**"
(псевдокод). Это изменит хэш коммитов, но сохранит сообщения и даты коммитов. И старый хеш коммита может быть добавлен в фильтрованное сообщение коммита
UPD .
Спасибо за ответы. Я уже прочитал возможные дубликаты и узнал: "на данный момент нет решения" . В ходе этого исследования я реализовал свою первую идею как простой обходной путь, а второй - как концепцию рабочего решения. Оба они дают полуиспользуемые результаты. Я бы подготовил и опубликовал их, если бы сообщество заинтересовалось.