所以Eclipse的git插件 - eGit - 已经支持子模块一段时间了(他们在2012年2月15日的1.3版本中增加了支持,现在已经超过一年了)。我刚刚开始使用它们。我能够毫无问题地添加子模块,我可以创建并签出子模块内的分支以获取本地补丁。我也可以在子模块中创建一个提交。
但是如何使用指向新提交的指针更新主存储库?当我选择“更新子模块”时,它会将我恢复为添加子模块时检出的原始提交(当您考虑git submodule update
做什么时,这并不奇怪)。当我点击“同步子模块”时,它似乎根本没有做任何事情。
那么有没有办法让主仓库使用eGit知道子模块中的新提交?我完全知道如何从命令行执行此操作,但我仍然试图找出是否可以从eGit中进行。
答案 0 :(得分:1)
修改子模块后,在父仓库级别上执行的Egit状态应检测到此子模块已更改。
(git status
, - 或gitsubmodule status
implemented in JGit - 会检测到子模块中的任何更改)
由于子模块的“已修改”状态,您应该能够在父仓库中提交,即使没有其他文件(父仓库)已更改。 该提交在工作树的.gitmodules file和special entry中记录新的SHA1,将在父仓库中记录该子模块的新状态。