Git管理分支上的子模块?

时间:2017-04-28 20:17:17

标签: git git-submodules

我在开发分支上有一个子模块,它不存在于其他分支上。每次我切换分支时,我都会收到这样的消息:

warning: unable to rmdir master/images/development/fakeapi: Directory not empty

当我查看目录时,即使我已经切换到没有子模块的分支,子模块文件仍然存在。

有没有办法解决这个问题,所以我不必在切换分支后手动删除子模块文件?

1 个答案:

答案 0 :(得分:2)

这似乎记录在Issues with Submodules中,默认情况下涉及一些手动命令。

  

切换包含子模块的分支也可能很棘手   如果您创建一个新分支,在那里添加一个子模块,然后切换回没有该子模块的分支,您仍然将子模块目录作为未跟踪的目录

Solution: git clean -ffd <submodule>

  

如果确实删除了该目录,然后切换回具有该子模块的分支,则需要运行submodule update --init以重新填充它。

您在&#34; Working with Git Submodules in MantisBT&#34;

中有更多关于这些操作的信息
  

有没有办法解决这个问题,所以我不必在切换分支后手动删除子模块文件?

  

有没有办法解决这个问题,所以我不必在切换分支后手动删除子模块文件?

检查git checkout -f是否可以提供帮助