Android Studio 跨项目同步 git 个子模块
Android Studio syncs git submodules across projects
我有一个主项目,其中包含其他几个 GIT 项目作为子模块。所有项目都在 git-flow 之后分支。主项目始终使用子模块的 master
分支。子模块中的新功能在 develop
或 feature
分支中的单独 IDE window 中开发。
如果我在 AndroidStudio 的不同 windows 中同时打开主项目和子模块,问题就开始了。 IDE 似乎认识到主项目 window 的子模块与在另一个 window 中打开的模块是同一个存储库,并开始保持签出提交同步。示例:
- 我打开主项目,子模块 A 在
master
分支的最后一次提交时签出。
- 我在新 IDE window 中打开模块 A 项目,并在
develop
分支的最后一次提交中签出。
- 我在子模块项目的 window.
中检查了一个不同的提交
- 主项目中的子模块自动更新为步骤3的提交。Git表明子模块提交已更改。
- 我将主项目子模块的分支改回
master
。 git 更改消失,但模块 A 也在其自己的 master
分支上签出 IDE window.
这使我无法在 AndroidStudio 中同时打开模块和主项目。
我在尝试查找此错误的原因时检查了以下内容:
- 主项目的子模块文件夹和模块项目的文件夹不在同一位置。
- Git 不是原因。我关闭了 IDE 并通过 Git-CLI 检查了不同的提交。两个项目的提交保持不同。
- 一旦两个项目都在 AndroidStudio 中打开,我如何更改提交并不重要(IDE 内置 Git-UI,IDE 内置终端 + Git CLI,外部终端 + Git CLI)。一旦我签出不同的提交,提交就会开始同步。
- IDE 使用系统的 Git 二进制文件。
这是错误还是功能?如果是后者,有没有办法禁用它?
这确实是一项功能。您可以在设置 | 下将其关闭版本控制 | Git | [ ] 对所有根执行分支操作(在旧版本中,此选项称为 "Control repositories synchronously")。
我有一个主项目,其中包含其他几个 GIT 项目作为子模块。所有项目都在 git-flow 之后分支。主项目始终使用子模块的 master
分支。子模块中的新功能在 develop
或 feature
分支中的单独 IDE window 中开发。
如果我在 AndroidStudio 的不同 windows 中同时打开主项目和子模块,问题就开始了。 IDE 似乎认识到主项目 window 的子模块与在另一个 window 中打开的模块是同一个存储库,并开始保持签出提交同步。示例:
- 我打开主项目,子模块 A 在
master
分支的最后一次提交时签出。 - 我在新 IDE window 中打开模块 A 项目,并在
develop
分支的最后一次提交中签出。 - 我在子模块项目的 window. 中检查了一个不同的提交
- 主项目中的子模块自动更新为步骤3的提交。Git表明子模块提交已更改。
- 我将主项目子模块的分支改回
master
。 git 更改消失,但模块 A 也在其自己的master
分支上签出 IDE window.
这使我无法在 AndroidStudio 中同时打开模块和主项目。
我在尝试查找此错误的原因时检查了以下内容:
- 主项目的子模块文件夹和模块项目的文件夹不在同一位置。
- Git 不是原因。我关闭了 IDE 并通过 Git-CLI 检查了不同的提交。两个项目的提交保持不同。
- 一旦两个项目都在 AndroidStudio 中打开,我如何更改提交并不重要(IDE 内置 Git-UI,IDE 内置终端 + Git CLI,外部终端 + Git CLI)。一旦我签出不同的提交,提交就会开始同步。
- IDE 使用系统的 Git 二进制文件。
这是错误还是功能?如果是后者,有没有办法禁用它?
这确实是一项功能。您可以在设置 | 下将其关闭版本控制 | Git | [ ] 对所有根执行分支操作(在旧版本中,此选项称为 "Control repositories synchronously")。