【发布时间】:2012-06-29 20:39:21
【问题描述】:
如果发生子模块冲突(即当两个要合并的提交包含引用提交的不同更改时),我怎样才能轻松地将子模块设置为“他们的”提交?如果是文件,我会执行:
git checkout --theirs <file>
但这不适用于子模块。在更技术层面上,我所拥有的是一个索引,其中包含阶段 1、2 和 3 的 submodule:
$ git ls-files -s module
160000 89b085c4269259fa22632353071e6875f158afde 1 submodule
160000 b9ad3bc8aafdf52a2adf74620afae8934474b82d 2 submodule
160000 1afd42893d18ef5edeeadd67e7c65262505e6004 3 submodule
而我想要的是在舞台0中拥有“他们的”版本:
$ git ls-files -s module
160000 1afd42893d18ef5edeeadd67e7c65262505e6004 0 submodule
更新: 引用 http://fiji.sc/wiki/index.php/Git_submodule_tutorial 的错误断言已删除。
更新 2: 添加了与索引相关的示例。
【问题讨论】:
-
您是否尝试从子模块文件夹中执行
git checkout --theirs? -
否,来自父存储库文件夹。
-
子模块是独立的存储库。有特定的命令来处理它们。
-
我不想碰子模块仓库,我只想让父仓库的“子模块指针”指向“他们的”而不是“我们的”提交。
标签: git conflict git-submodules