4

所以 Eclipse 的 git 插件 - eGit - 已经支持子模块一段时间了(他们在 2012 年 2 月 15 日的 1.3 版本中添加了支持,所以现在已经一年多了)。我刚刚开始使用它们。我可以毫无问题地添加子模块,我可以在子模块内为我的本地补丁创建和签出一个分支。我还可以在子模块中创建提交。

但是如何使用指向新提交的指针更新主存储库?当我选择“更新子模块”时,它会将我恢复到在添加子模块时签出的原始提交(当您认为这样做时,这并不奇怪git submodule update)。当我点击“同步子模块”时,它似乎根本没有做任何事情。

那么有没有办法让主仓库使用 eGit 知道子模块中的新提交?我非常清楚如何从命令行执行此操作,但我仍在尝试从 eGit 中找出是否可行。

4

1 回答 1

1

修改子模块后,在父 repo 级别上完成的 Egit 状态应该检测到该子模块已更改。
( git status, -- 或gitsubmodule status 在 JGit 中实现-- 将检测子模块中的任何更改)

由于子模块的“修改”状态,即使没有其他文件(父仓库的)发生更改,您也应该能够在父仓库中提交。
该提交,在.gitmodules 文件中记录一个新的 SHA1并在工作树中记录一个特殊条目,将在父 repo 中记录该子模块的新状态。

于 2013-04-16T06:03:04.490 回答