当当前分支没有时,如何检查管理子模块路径的分支?

时间:2013-09-09 22:36:56

标签: git

我创建了一个分支,在其中我将存储库中的路径转换为子模块。我还没有把这项工作合并到master。完成将该路径转换为子模块后,我尝试切换回master并收到以下错误:

  

以下未跟踪的工作树文件将被结帐:

覆盖      

[...现在由子模块管理的文件列表...]

有道理。所以,我做了git checkout --force master。然后,当我切换回使用子模块跟踪路径的分支时,该路径为空,除了在子模块中找到的.git指针。要将子模块重新签出到索引中指定的提交,我需要git submodule update --force

有没有更简单的方法来处理这种情况?

1 个答案:

答案 0 :(得分:2)

只要你保留一个目录:

  • 作为一个分支中的子模块
  • 作为master
  • 中的一组托管文件

您将获得自git submodule update isn't automatic以来所见到的那种体验。

一种解决方法是维护两个克隆(一个在主服务器上,一个在您的分支上)。

另一种方法是设置一个post-checkout hook

  • 检测签出的分支
  • git submodule update --force是否恰当。

lines of that hook(或this one)上的某些内容。

相关问题