我的git repos包含一个带有应用程序开发版本的master分支,以及每个已发布(或当前测试)的应用程序版本的分支。
自上一个分支以来,我们在master(= development)分支中添加了一个子模块。
今天我不得不对最后一个不包含子模块的分支进行一些更改。当我检查这个分支时,我总是收到警告“警告:无法rmdir Path / To / Submodule:Directory not empty”,并且当你执行“git status”时,“Path / To / Submodule”将被列为“未跟踪” ”。 在进行更改之后,我总是确保在提交之前有选择地添加文件,这样我就不会意外地将“Path / To / Submodule”添加到此分支。
当再次检出主分支并简单地使用“git merge”进行合并时,子模块现在在主分支中被列为“未跟踪”。
查看.gitmodules仍然定义了子模块...
有关如何恢复此问题的任何提示?我是否需要重新启动子模块?
干杯, 尼尔斯
答案 0 :(得分:0)
我不相信你会得到那些症状,除非在你最后一个分支的历史记录中的某个时刻跟踪了该目录,然后git rm
出于某种原因进行了跟踪。
话虽如此,如果您现在重新初始化子模块,下一个合并不应该再次删除它,因为rm
提交已经合并。这比尝试重写最后一个分支的历史更容易,因此子目录从未出现在第一位。