以编程方式重写git历史记录

问题描述 投票:1回答:1

例如,我想使用gitpython重写我的一个仓库以编程方式的历史记录。想法是读取现有的存储库,并在进行一些修改后将其所有提交重新应用于新的存储库:

  • 不同的提交时间
  • 将某些提交拆分到子模块,如果文件匹配某些模式,则添加对子模块提交的引用
  • 使用其他提交消息

使用gitpython,我可以读取提交历史记录树和所有相关信息,但是我还没有找到在新的存储库中提交内容的方法,当必须从另一个存储库中复制信息时,再也没有成功。

是否可以通过编程方式执行此操作?我想必须有一种方法,因为它可以或多或少地手工完成,一次提交即可。

非常感谢!

python git gitpython git-rewrite-history
1个回答
0
投票

您可以获取灵感(或直接使用)newren/git-filter-repo,它是:

  • 用Python编写,然后
  • newren/git-filter-repo

replaces BFG or git filter-branch可以处理拆分存储库,但不必在同一步骤中为子模块存储库添加树SHA1作为gitlink。尽管如此,它仍可以扩展以执行您需要的操作。

© www.soinside.com 2019 - 2024. All rights reserved.