VS Code无法显示父仓库中子目录克隆仓库的代码变更该如何处理?
解决嵌套Git仓库变更不显示的问题
情况1:不需要保留kubric与原仓库的关联(直接将kubric作为普通目录提交)
当前kubric是独立的Git仓库(自带.git目录),父仓库会默认忽略它的内容,导致VS Code源代码管理不显示其中的变更。解决步骤:
- (可选)备份kubric的原Git信息,方便后续同步上游kubric的更新:
mv /users/me/repos/my_tapnet_integration/tapnet/kubric/.git /users/me/repos/my_tapnet_integration/tapnet/kubric/.git_backup - 回到
my_tapnet_integration根目录,将kubric目录加入父仓库追踪:
执行后VS Code的源代码管理就会显示kubric内的所有变更,你可以和tapnet的修改一起提交到cd /users/me/repos/my_tapnet_integration git add tapnet/kubric/my_tapnet_integration仓库。
情况2:需要保留kubric与原仓库的关联(使用Git子模块)
如果需要后续同步上游kubric的更新,建议使用Git子模块,但不能直接对已存在的kubric目录执行git submodule add,正确步骤:
- 先移除当前的kubric目录,提前备份好你在kubric里的修改到其他位置:
rm -rf /users/me/repos/my_tapnet_integration/tapnet/kubric - 在
my_tapnet_integration根目录添加子模块:cd /users/me/repos/my_tapnet_integration git submodule add https://github.com/google-research/kubric.git tapnet/kubric - 初始化并更新子模块:
git submodule init git submodule update - 将之前备份的kubric修改复制回新的子模块目录,之后进入kubric目录提交变更,父仓库会追踪子模块的commit哈希值,VS Code也会显示子模块的状态变更。
为什么直接git submodule add kubric/不可行?
当前kubric已经是一个独立的Git仓库,Git不允许直接将已存在的Git仓库作为子模块添加到当前仓库,执行该命令会触发报错,必须先移除原kubric的.git目录或删除整个kubric目录后再添加子模块。
内容的提问来源于stack exchange,提问作者neon5480
相关产品推荐
相关产品推荐

