从已拆分为子模块的遥控器中拉出并重新绑定

时间:2017-11-17 04:59:43

标签: git github git-submodules

我正在合作开发一个GitHub项目(我已经将其重新组合),这个项目最近被重新组织成var Promise = require('promise'); var promises = []; for (var i = 0; i < 3; i++) { console.log('push promise ' + i); promises.push(foo(i)); } Promise.all(promises) .then(function (data) { for (var i = 0; i < data.length; i++) { console.log(data[i]); } console.log("done"); }); function foo(i) { return new Promise(function (resolve, reject) { resolve('--> foo i ' + i); }); }

之前我会submodules我的更改,执行git stash,然后执行git pull --rebase shared_origin master继续工作。在将更改提交到我的本地仓库后,我会使用git stash pop将它们推送到共享仓库的分支,然后创建git push my_origin development

现在该项目已被拆分为子模块,如何执行复制整个仓库(包括所有子模块)的pull rebase,重新应用我的(未合并的)更改并继续我的开发?

请考虑我已更改的文件作为子模块重组的一部分移动到其他目录的可能性。

1 个答案:

答案 0 :(得分:1)

您可以考虑选项pull --recurse-submodule=yes

并且不要忘记你可以默认使用git pull来存储和修改。

git config pull.rebase true
git config rebase.autoStash true

实际上,结合with the config

git config fetch.recurseSubmodules true

现在,来自父仓库的简单git pull(引用所有这些子模块的那个)就足够了。

注意:子模块默认位于detached HEAD mode,因此请确保他们首先签出了分支,并且您已经在其中进行了一些本地提交,如果您希望rebase实际在所述子模块中执行某些操作。