在Git中,我们可以使用子模块(submodule)来将非版本化的仓库链接到产品目录的版本化仓库。下面是一个示例解决方法:
$ git submodule add <非版本化仓库链接> <子模块路径>
例如,将名为non-versioned-repo
的非版本化仓库链接到product-directory/versioned-repo
的版本化仓库中:
$ git submodule add https://github.com/user/non-versioned-repo product-directory/versioned-repo/non-versioned-repo
执行上述命令后,Git会将非版本化仓库克隆到子模块路径中,并将其添加到产品目录版本化仓库的索引中。
接下来,进入子模块路径并切换到所需的分支或版本:
$ cd product-directory/versioned-repo/non-versioned-repo
$ git checkout <分支或版本>
$ cd ../../..
$ git add .
$ git commit -m "Add non-versioned-repo submodule"
$ git push
现在,产品目录版本化仓库中的子模块就会与非版本化仓库保持同步。其他开发人员可以通过以下命令来更新子模块:
$ git submodule update --remote
需要注意的是,子模块只是一个指向特定提交的指针,并不会自动跟随非版本化仓库的最新变更。如果需要更新子模块到最新版本,可以在子模块路径中执行git pull
命令来获取最新变更。