git - 如何更改 git 子模块以指向子文件夹?

标签 git git-submodules

浏览the SubModule tutorial ,我从 boto project 创建了一个子模块.然后,我发现我实际上只需要这个项目的一个子集——具体来说,boto文件夹。

我想更改我的子模块以指向此文件夹。当我查看 .gitmodules 时,我看到了

[submodule "backup/src/boto"]
    path = backup/src/boto
    url = https://github.com/boto/boto.git

我应该使用什么 URL 而不是 https://github.com/boto/boto.git ?修改url后,是不是要删除本地的boto文件夹,重新 pull ?

最佳答案

恐怕子模块的 URL 总是只指向存储库 - 你不能指定你只想要存储库的子文件夹,就像 git 通常不支持“窄克隆”一样。

如果您不能忍受将整个存储库作为一个子模块,您总是可以创建一个从 boto 克隆的新存储库,然后设置一个 cron 作业来:

  1. git fetch 将该存储库放入目录
  2. 使用git filter-branch 更新子目录位于顶层的分支。
  3. 将存储库的该分支添加为子模块。然而,这有点繁琐,我更喜欢将整个存储库作为一个子模块。

关于git - 如何更改 git 子模块以指向子文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5303496/

相关文章:

git - 使用已删除的远程分支从原点获取?

git - 将具有文件重命名和编辑的 git 提交分成两个提交

git - 如何更新git子模块

git - 如何使 git 存储库中的现有目录成为 git 子模块

git - 将更改推送到 .git 目录

git - 使用 git security 部署网站

git - 无法使用 SSH 推送到 Github

git - 通过子模块显示 Git 中的外部代码依赖性

git - 列出 Git 存储库中的子模块

git push --recurse-submodules=on-demand 并不是真正的递归