Android Studio在项目

时间:2018-03-09 17:31:31

标签: git android-studio git-submodules

我有一个主项目,其中包括几个其他GIT项目作为子模块。所有项目都在git-flow之后分支。主项目始终使用子模块的master分支。子模块中的新功能是在developfeature分支的单独IDE窗口内开发的。

如果我在AndroidStudio的不同窗口中打开主项目和子模块,问题就会开始。 IDE似乎认识到主项目窗口的子模块与在另一个窗口中打开的模块是同一个存储库,并开始使签出的提交保持同步。例如:

  1. 我打开主项目,子模块A在master分支的最后一次提交时签出。
  2. 我在develop分支的最后一次提交中签出的新IDE窗口中打开模块A项目。
  3. 我在子模块项目的窗口中签出了一个不同的提交。
  4. 主项目中的子模块自动更新为第3步的提交.Git显示子模块提交已更改。
  5. 我将主项目子模块的分支更改回master。 git更改消失,但模块A也在其自己的IDE窗口中的master分支上签出。
  6. 这使我无法同时打开AndroidStudio中的模块和主项目。

    我在尝试查找此错误的原因时检查了以下内容:

    • 主项目的子模块文件夹和模块项目的文件夹不在同一个位置。
    • Git不是原因。我关闭了IDE并通过Git-CLI检出了不同的提交。两个项目的提交保持不同。
    • 一旦两个项目都在AndroidStudio中打开,我改变提交的方式并不重要(IDE内置Git-UI,IDE内置终端+ Git CLI,外部终端+ Git CLI)。一旦我签出了不同的提交,提交就会开始同步。
    • IDE使用系统的Git二进制文件。

    这是一个错误还是一个功能?如果是后者,有没有办法禁用它?

1 个答案:

答案 0 :(得分:1)

这确实是一个功能。您可以在“设置”下将其关闭版本控制| Git | []对所有根执行分支操作(在旧版本中,此选项称为“同步控制存储库”)。