6

假设我有两个 Git 存储库,A 和 B。B 是 A 的子模块。

为简单起见,我们还假设我有一个魔术函数,get_sha_B即给定来自 A 的 SHA 提交,返回 B 的所需 SHA 提交。

如何在 repo A 上运行 filter-branch,以便 repo A 的每个提交都被重写以指向 repo B 的所需提交,如返回的get_sha_B

谢谢!

4

1 回答 1

5

弄清楚了!我将在这里回答我自己的问题:

我可以git update-indexgit filter-branch --index-filter.

以下是如何调用 update-index 来修改子模块的提交 SHA:

git update-index --cacheinfo 160000 88e6a302c42840440f9faac73f27efc6a3e0c1a6 pathto/mysubmodule

据我了解,160000 是 Git 中用于标识子模块的幻数。

于 2013-02-09T06:47:38.117 回答