如何使用嵌套的git repos禁用git repo的子模块功能?

时间:2018-03-23 12:11:28

标签: git git-submodules

我有以下回购结构:

/repo
  .git/
  subrepo1/
    .git/
    ...
  dir/
    subrepo2/
      .git/
      ...
  ...
  subrepoN/
    .git/
    ...

subrepo在外部更新,但不一定有遥控器。 repo的目的是跟踪所有subrepo的更新,并在一个地方引入新的更改。更新将形成一个" vanilla" repo内的分支,然后定期合并到" dev"科。这是预期的工作流程。 Git默认拒绝跟踪subrepo的文件,假设它们是未配置的子模块。

问题是如何禁用此类行为?我不想使用子模块。我希望Git停止将subrepo作为子模块处理,忽略每个subrepo .git目录,同时保留它,并跟踪subrepo中的所有文件。最好在repo .git/config个文件中。

我查看了git手册,尝试了各种各样的事情并且无法实现这一点。有一个有价值的workaround,但仍需要为每个git add <subrepo-path>/执行subrepo。子树方法是不可取的,因为它似乎使空间消耗增加了一倍并增加了复杂性。

1 个答案:

答案 0 :(得分:0)

我认为没有一种简单的方法。您必须删除或重命名子文件夹中的.git/或编辑git源(并重新编译git)以禁用.git/作为子模块的识别。