簡體   English   中英

相當於git checkout我們/他們的子模塊

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM