2013-02-09 73 views
4

讓我們假設我有兩個Git倉庫,A和B. B是A如何使用'git filter-branch'來更新子模塊的SHA?

的子模塊爲簡單起見,我們也假設我有一個神奇的功能,get_sha_B,有這樣的SHA從提交A,返回B所需的SHA提交。

如何在repo A上運行filter-branch,使repo A的每次提交都被重寫爲指向期望的repo B提交,如get_sha_B所返回的那樣?

謝謝!

回答

3

想通了!我要回答我自己的問題:

我可以使用git update-indexgit filter-branch --index-filter一起使用。

下面是如何調用更新索引修改提交一個子模塊的SHA:

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

是最好的,我的理解,160000是一個神奇的數字在Git中用來識別一個子模塊。

+0

謝謝,這正是我慢慢走向的東西。你只是讓我知道如何去做 – 2013-06-10 05:20:58