我有一个内部有子模块的项目。我希望能够使用--recursive
克隆父项目,并将子模块放在该子模块的特定哈希中。特定哈希不是任何分支的头部,它是特定的提交。
从svn的角度来看,将外部与特定版本挂钩。
我尝试将子模块添加到分支并检出所需的哈希,但是当我想提交更改时,它保留了添加的初始哈希值。
答案 0 :(得分:0)
Git默认情况下,默认情况下,子模块与超级项目中的提交挂钩到特定的哈希(即,子模块的签出提交)(但是,当您更改父存储库时,不会自动更新子模块)默认情况下-要手动执行此操作,TortoiseGit提供“子模块更新”功能,或者您可以配置submodule.recurse
)。
如果您的.gitmodules
文件仅为特定子模块设置了url
和path
值,则如果“父” “存储库。
当您比较包含子模块的提交时,可以在日志对话框中对此进行验证,然后您可以在其中看到子模块的哈希。除非在子模块中检出了该提交,否则它将在父存储库中报告为已修改。
为了将子模块更新到该特定版本(例如,在拉动或切换/签出之后),您需要运行“子模块更新”(可能带有force选项,以便将子模块强制为该修订版-这可能会导致本地子模块中的数据丢失。
进一步阅读: