假设我有两个Git存储库,A和B. B是A的子模块。
为了简单起见,我们还假设我有一个魔术函数get_sha_B
,给定来自A的SHA提交,返回B的所需SHA提交。
如何在repo A上运行filter-branch,以便重写每个repo A提交以指向所需的repo B提交,由get_sha_B
返回?
谢谢!
答案 0 :(得分:3)
想出来!我将在这里回答我自己的问题:
我可以将git update-index
与git filter-branch --index-filter
结合使用。
以下是调用update-index来修改子模块的提交SHA的方法:
git update-index --cacheinfo 160000 88e6a302c42840440f9faac73f27efc6a3e0c1a6 pathto/mysubmodule
据我理解,160000是用于识别子模块的Git中的一个神奇数字。