[英]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.