注:除了直接用文本编辑器修改 .gitmodules 文件以外,还可以通过命令进行修改(参考如下示例)。
注:对于 --remote 而言3.5 常用 git 设置(推荐进行配置)
- remote 使用 submodule..branch=branch_name 来确认分支名称,若未设置则使用远程仓储设定的默认分支。再通过读取子模块 branch.branch_name.remote=origin 来确认从远程分支获取的地址和 HEAD,默认为 detached HEAD,对应 remotes/origin/HEAD,获取该分支最新提交。
- 如果本地子模块签出了某个分支,则 HEAD attached 到对应分支,即 branch.branch_name.merge=refs/heads/branch_name。
- 如果本地子模块当前的 HEAD commit hash 和 submodule..branch 中的值不一致的话,会导致子模块被 detach HEAD,不再追踪某个分支,而是映射到 submodule..branch 最新的提交上。以上通常存在两种情况,第一种是 HEAD 和 submodule..branch 分支本身就不同。第二种是本地子模块的提交落后于 submodule..branch 最新的提交。通过添加 --merge 参数可以避免 detachment。
- 如果子模块有本地提交并与远程提交产生了冲突,需要用 --rebase 参数来解决。
- 子模块内使用 git pull 直接使用的是对应分支的 HEAD,为 branch.branch_name.merge=refs/heads/branch_name。对应上述第2点,和一个签出 branch_name 分支后 HEAD attach 到 heads/branch_name 的子模块的 HEAD 是一致的。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |