`gh repo sync` 不会更新本地仓库中的子模块
作者: muzimuzhi创建于 2026年7月20日更新于 2026年9月16日
标签enhancementgh-repostale
描述错误
当当地repo被用作目的地repo时,"gh repo synd"不更新子模块. `--被责罚的子模块'
其他 " gh " 子命令中的相同问题:
gh repo Clone'和gh repo fork'都支持在`-'后再取出更多吉特旗帜。- https://GitHub.com/cli/cli/issues/4616
- https://GitHub.com/cli/cli/issues/6152。
gh pr取出'支持旗帜-recurse-子模块'。- https://GitHub.com/cli/cli/issues/368。
受影响的版本
gh 2.9.6.0 (2026-07-02) (中文(简体) ). https://GitHub.com/cli/cli/releases/tag/v2.96.0 (中文(简体) ).
- 复制行为的步骤
以https://GitHub.com/Witiko/expltools为例. 它设置了两个子模块.
# 准备
(原始内容存档于2018-09-21) (中文(简体) ). $gt Clone -- revision=a13cc24554adf90e3a6f4a82a8b8528cadb2f412 -- [email protected]:Witiko/expltools.git
CD 扩展工具
$git 切换 -c 主
$ git 子模块更新 -- init -- recursive -- deep=1
$gh repo 同步 -- -- 分支主
将“ 主” 分支从“ Witiko/ 开发工具” 同步到本地寄存器
$ git 状态
在分支主干线上
未实施的变化 :
(使用“ git 添加 < file> ... )以更新将要执行的内容)
(使用“ git revolution < file> ... ” 来丢弃工作目录中的更改)
修改:第三方/迟交(新犯)
没有添加任何更改来执行(使用“ git 添加” 和/或“ git 承诺 -a ”)
预期行为与实际行为
预期:`gh repo syndise' 更新子模块,并留下一棵干净的工作树,要么自动地,要么通过一些额外的(Git)旗帜.
实际: 如果同步输入包含子模块更新, “ gh repo synd” 将子模块Directori( es) 弄脏, 参见上述“ git status” 输出 .
内容来源: cli/cli