2012-10-18 59 views
0

我有一个git项目回购包含两个其他项目作为子模块。当曾经的修改在子模块对文件所做的,出移动到“超级工程”的时候,的子模块--- git的状态业者表示git子模块需要从超级项目提交?

modified: on_of_my_submodules (new commits) 

...我觉得这是很奇怪的,和烦人的...任何时候在这些子模块中的一个提交,我不得不离开目录并提交它?这真的是每个人在使用子模块时所做的工作流程吗?

我很想尝试将子模块添加到我的超级项目的.gitignore中,并且只知道在克隆超级项目时,必须进入所有子模块并从那里获取最新内容。

我很想听听你对如何处理这个正确的一些见解...

回答

0

上层项目被锁定到特定提交的子模块;无论何时在子模块中进行新的提交,并且希望将超级项目锁定到该提交,都必须提交该更改。

(其实,这是非常有帮助的,因为它关系在上层项目具体承诺具体提交的子模块。)

+0

,但你不觉得乏味和恼人拥有的工作流程:(工作).. git commit -am“实现的功能X”; git push origin master; cd ../ ..; git commit -am“更新子模块垃圾”; git push origin master; ...? – patrick

+0

似乎工作流只是在超级项目中提供了十亿无价值的提交。 – patrick

+0

@patrick:当我准备将它与子模块的新版本绑定时,我只更新超级项目(所以不仅仅是为了每次提交)。 – mipadi