Wal*_*t D 5 git git-submodules git-filter-branch
假设我有两个Git存储库,A和B. B是A的子模块.
为了简单起见,我们还假设我有一个神奇的函数get_sha_B,给定来自A的SHA提交,返回B的所需SHA提交.
如何在repo A上运行filter-branch,以便重新编写repo A的每个提交以指向所需的repo B提交,如get_sha_B?
谢谢!
弄清楚了!我将在这里回答我自己的问题:
我可以git update-index结合使用git filter-branch --index-filter.
以下是如何调用 update-index 来修改子模块的提交 SHA:
git update-index --cacheinfo 160000 88e6a302c42840440f9faac73f27efc6a3e0c1a6 pathto/mysubmodule
Run Code Online (Sandbox Code Playgroud)
据我所知,160000 是 Git 中用于标识子模块的幻数。