3 回答

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊
我懷疑您在這里感到困惑,因?yàn)檫@從根本上來(lái)說(shuō)是令人困惑的。更糟的是,當(dāng)您進(jìn)行基準(zhǔn)調(diào)整時(shí),我們/他們的整個(gè)工作切換角色(倒退)。
最終,在期間git merge,“我們的”分支是指您要合并到的分支:
git checkout merge-into-ours
而“他們的”分支是指您要合并的(單個(gè))分支:
git merge from-theirs
這里“我們”和“他們”有一定道理,因?yàn)?,即使“他們”可能是你的,無(wú)論如何,“他們”是不是你是我的唯一的,當(dāng)你跑了git merge。
雖然使用實(shí)際的分支名稱可能很酷,但在更復(fù)雜的情況下會(huì)分崩離析。例如,代替上面的方法,您可以這樣做:
git checkout ours
git merge 1234567
您通過(guò)原始提交ID合并的位置。更糟糕的是,您甚至可以執(zhí)行以下操作:
git checkout 7777777 # detach HEAD
git merge 1234567 # do a test merge
在這種情況下,不涉及分支名稱!
我認(rèn)為這沒(méi)有什么幫助,但是實(shí)際上,在gitrevisions語(yǔ)法上,您可以在沖突合并期間按數(shù)字引用索引中的單個(gè)路徑
git show :1:README
git show :2:README
git show :3:README
階段1是文件的共同祖先,階段2是目標(biāo)分支版本,階段3是您要從中合并的版本。
“我們的”和“他們的”概念在此期間rebase被交換的原因是,通過(guò)執(zhí)行一系列的櫻桃操作,將重新建立基礎(chǔ)工作到匿名分支(分離的HEAD模式)。目標(biāo)分支是匿名分支,而merge-from分支是您的原始(重新設(shè)置基準(zhǔn))分支:因此,“-我們的”表示正在建立匿名的一個(gè)基準(zhǔn),而“-他們的”表示“正在重新建立我們的分支” 。
至于gitattributes條目:它可能會(huì)產(chǎn)生影響:“我們的”實(shí)際上是在內(nèi)部表示“使用階段2”。但是正如您所注意到的,它當(dāng)時(shí)實(shí)際上并不存在,因此它應(yīng)該不會(huì)在這里起作用……好吧,除非您在開(kāi)始之前將其復(fù)制到工作樹(shù)中,否則不會(huì)這樣做。
另外,順便說(shuō)一句,這適用于我們及其使用的所有使用,但是有些是在整個(gè)文件級(jí)別上(-s ours對(duì)于合并策略;git checkout --ours在合并沖突期間),而有些是逐段的(-X ours或-X theirs在-s recursive合并)。這可能無(wú)助于解決任何混亂。
不過(guò),我從來(lái)沒(méi)有想出一個(gè)更好的名字。并且:請(qǐng)參見(jiàn)VonC對(duì)另一個(gè)問(wèn)題的回答,其中g(shù)it mergetool為它們引入了更多名稱,稱它們?yōu)椤氨镜亍焙汀斑h(yuǎn)程”!
- 3 回答
- 0 關(guān)注
- 829 瀏覽
添加回答
舉報(bào)