我已经在我的存储库根目录中的特定文件夹中创建了一个子模块。
我可以看到子模块已在 .git/.gitmodules 和 .gitmodules 中很好地注册,但我无法让它工作。
如果我创建 git 子模块状态或进行更新,我看不到它。
Git 不能只看到这个子模块(其他的运行良好)。
你有什么踪迹吗?
谢谢你的时间
我已经在我的存储库根目录中的特定文件夹中创建了一个子模块。
我可以看到子模块已在 .git/.gitmodules 和 .gitmodules 中很好地注册,但我无法让它工作。
如果我创建 git 子模块状态或进行更新,我看不到它。
Git 不能只看到这个子模块(其他的运行良好)。
你有什么踪迹吗?
谢谢你的时间
一个想法 - 您正在尝试添加一个空仓库作为子模块。您需要在子模块中至少有一个提交,因为它是通过提交 ID 链接的。尝试在根 repo 中执行此命令:
git ls-tree HEAD -r
您在结果中看到您的子模块吗?该行应如下所示:
160000 commit 72a0f63227341c35af566de0d6d4a76797ba22b2 my_submodule_dir
无论我做什么,Git 都无法识别子模块。
没有任何修改,我只是:
子模块现在可以正常工作。
请注意,Git 没有添加新的子模块,他只是按应有的方式识别子模块。
感谢您的所有回答
git submmodule status 没有看到(完全)子模块的另一种情况是刚刚创建了所述子模块(初始化,但尚未更新)
这是有问题的,因为 Git 2.18(2018 年第二季度)修复了一个错误:“ git submodule status
”没有检查它为子模块 HEAD 计算的符号修订名称不是 NULL,并将其扔到printf
例程中,这已得到纠正。
请参阅Nguyễn Thái Ngọc Duy ( ) 的提交 0b5e2ea(2018 年 4 月 18 日)。(由Junio C Hamano 合并 -- --在0cd58d8 提交中,2018 年 5 月 8 日)pclouds
gitster
submodule--helper
: 不要null
在 'submodule status
'中打印该函数有时
compute_rev_name()
会返回NULL
(例如,在'submodule init
'之后)。
当前代码使 'submodule status
' 打印:19d97bf5af05312267c2e874ee6bcf584d9e9681 sha1collisiondetection ((null))
这个丑陋的 '
null
' 对使用此命令的用户没有任何价值。
更重要的是,printf()
在某些平台上无法将 NULL 作为字符串处理,并且会崩溃而不是打印 '(null)
'。检查这一点并跳过打印这部分(替代方法是打印'
(n/a)
'或其他东西,但我认为这只是噪音)。