Перепишите git историю программно - PullRequest
1 голос
/ 22 марта 2020

Я хотел бы переписать историю одного из моих репо программно , например, используя gitpython. Идея состоит в том, чтобы прочитать существующее хранилище и повторно применить каждый из его коммитов к новому после некоторой модификации:

  • различное время коммитов
  • , разделяющее некоторую фиксацию на подмодуль, если файлы соответствуют некоторому шаблону, добавляя ссылку на коммит подмодуля
  • , используя другое сообщение коммита

Используя gitpython, я могу прочитать дерево истории коммитов и все соответствующую информацию, но я не нашел способа зафиксировать что-либо в новом репо, больше нет успеха, когда информация должна быть скопирована из другого репо.

Есть ли способ сделать это программно? Я полагаю, что должен быть способ, так как это может быть сделано более или менее вручную, один коммит за один.

Большое спасибо!

1 Ответ

2 голосов
/ 22 марта 2020

Вы можете черпать вдохновение (или напрямую использовать) newren/git-filter-repo, то есть:

git filter-repo может обрабатывать репозиторий расщепления, но необязательно добавлять на том же этапе дерево SHA1 в качестве gitlink для репозитория подмодулей.
Тем не менее, его можно расширить, чтобы сделать то, что вам нужно.

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