Git子模块peer2peer工作流程

时间:2016-01-21 02:10:49

标签: git git-submodules

我有一个工具集合,我通过远程仓库上的git pull与工作树在我的计算机之间进行同步。

每当某些工具有git源时,我都会通过'git submodule add'添加它们。

有时候我会进行小修改,编译工具,并希望在git repo中添加它 - 我的目标是快速使用它们并重新编译。 什么是适当的工作流程?如果我开始:

modulepath/submodulepath/bin$ git add submodulefile
modulepath/submodulepath/bin$ git commit -m "subfix"
modulepath/submodulepath/bin$ git pull origin master
modulepath/submodulepath/bin$ cd ../../
modulepath/$ git add submodulepath;git commit -m "subfix in sub"

那么在拉回主回购后会传播提交子修订吗?我在这里阅读git submodule update我需要提交第一个子模块。但事实上,我的提交不会被推送到子模块,但我想在主机共享主模块之间同步更改,如何继续?是否可以通过主模块覆盖子模块中的更改?或者我可以在没有上游URL的情况下启动子模块分支 - 它只会被父主模块获取/合并。

1 个答案:

答案 0 :(得分:0)

  

但事实上我的提交不会被推送到子模块源但我想在主机共享主模块之间同步更改

问题在于:如果您希望主仓库能够将其取回,则需要首先推送子模块。

主回购仅记录代表子模块新SHA1的 gitlink special entry in the index)。
但是,如果该SHA1表示未被子模块推送的提交,则git submodule update将无法成功。