使用
现在,如果这个仓库(我们称之为
是否有一种方法可以重写
我猜想原则上可以通过给出旧SHA和新SHA之间的对应关系来实现,但我担心可能涉及到复杂的bash脚本。 是否有更简单的方法?
git filter-branch
重写仓库历史后,所有的SHA都会发生变化。现在,如果这个仓库(我们称之为
X
)作为git子模块被另一个仓库(我们称之为Y
)使用,那么就会出现问题。
实际上,根据子模块中提交的SHA,Y
知道要加载哪个版本的子模块X
。由于X
中的所有SHA都已经改变,Y
指向的SHA已经不存在了。是否有一种方法可以重写
Y
的历史记录,使其指向子模块X
的新提交SHA(包括当前和过去的提交)?我猜想原则上可以通过给出旧SHA和新SHA之间的对应关系来实现,但我担心可能涉及到复杂的bash脚本。 是否有更简单的方法?