Git:如果不存在远程分支,请避免子模块父分支跟踪发生错误

时间:2019-04-24 13:48:37

标签: git git-submodules git-remote feature-branch

我有一个像这样的git存储库结构:

─ main_project_repo (branch: master)
  ├── submodule: component1_repo (branch: master)
  ├── submodule: component2_repo (branch: master)
  .
  └── submodule: componentN_repo (branch: master)

main_project_repo不包含源代码,而仅包含子模块。

为了使用功能分支开发功能,我在main_project_repo上创建了该功能分支,以及受该功能影响的所有组件仓库,但对不是就是这样:

─ main_project_repo (branch: feature/foo)
  ├── submodule: component1_repo (branch: master)
  ├── submodule: component2_repo (branch: feature/foo)
  .
  └── submodule: componentN_repo (branch: master)

我想将remote branch tracking用于子模块,并避免在.gitmodules中修改main_project_repo(在合并之前必须清理),我使用.作为远程分支值,它将为每个具有该值的子模块自动跟踪origin/feature/foo

问题是:我想为每个子模块设置.,以便能够仅运行git submodule update --remote来签出当前功能分支,但这会导致对于没有此类功能分支的每个子模块,都会出现错误:

git submodule update --remote
fatal: Needed a single revision
Unable to find current origin/feature/foo revision in submodule path 'component1_repo'

我现在可以远程手动更新所有子模块,而忽略该错误,或​​者我可以为每个子模块配置功能分支-无论我是否需要一个(这会导致大量未使用的功能)分支)。

有没有办法说“跟踪远程分支(如果存在),否则使用master”?

你怎么做到的?

0 个答案:

没有答案