[英]Equivalent of git checkout ours/theirs for submodules
在解决文件中的冲突时我可以
git checkout --ours filename
然后提交该文件。 这将解决冲突。 然而,
git checkout --ours submodule
似乎不起作用。 子模块的引用提交不会更改。
什么是相当于git checkout --ours filename
在解决子模块引用中的冲突时的git checkout --ours filename
?
考虑下一个问题 ,您可以尝试检查子模块的三个阶段之一:
git checkout -1 -- submodule # common ancestor
git checkout -2 -- submodule # source
git checkout -3 -- submodule # destination or MERGE_HEAD
一旦子模块的gitlink被更改,不要忘记git submodule update
,以刷新其内容。
OP Amiramix指的是这个quora答案 ,Facebook的生产工程师Berk D. Demir补充道:
git checkout -1 file
...将从两个分支的祖先签出文件。
这既不是“我们的”也不是“他们的”。 这是两个分支分歧之前的文件版本。 非常方便。你可以猜到,参数
-2
是针对HEAD的版本而-3
是来自MERGE_HEAD
版本。通过所有其他git命令访问这些文件的另一种方法是使用提交的symbolic-refs。
git checkout MERGE_HEAD -- file
与--theirs
或-3
给出相同的效果。处理合并冲突时另一个方便的语法是路径的冒号阶段冒号前缀。
git show :3:file
将显示来自MERGE_HEAD
的文件(不是diff)。一个很小的备忘单:
-1 == $(git merge-base HEAD MERGE_HEAD)
-2 == --ours == HEAD
-3 == --theirs == MERGE_HEAD
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.