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