有没有“他们”版本的“Git合并我们的”?

有没有“他们”版本的“Git合并我们的”?

将主题分支“B”合并为“A”时使用git merge我有些矛盾。我知道所有的冲突都可以用“B”中的版本来解决。

我知道git merge -s ours..但我想要的是git merge -s theirs.

为什么不存在?在与现有的冲突合并之后,如何实现相同的结果?git命令?git checkout每个未合并的B文件)

更新:仅仅丢弃分支A中的任何东西(合并提交点到B版本的树)的“解决方案”不是我想要的。


长风秋雁
浏览 543回答 3
3回答

缥缈止盈

一个可能的和经过测试的解决方案,用于将分支B合并到我们的签出分支A中:# in case branchA is not our current branchgit checkout branchA# make merge commit but without conflicts!!# the contents of 'ours' will be discarded latergit merge -s ours branchB    # make temporary branch to merged commitgit branch branchTEMP         # get contents of working tree and index to the one of branchBgit reset --hard branchB# reset to our merged commit but # keep contents of working tree and indexgit reset --soft branchTEMP# change the contents of the merged commit# with the contents of branchBgit commit --amend# get rid off our temporary branchgit branch -D branchTEMP# verify that the merge commit contains only contents of branchBgit diff HEAD branchB要使其自动化,可以使用分支A和分支B作为参数将其包装到脚本中。此解决方案保留合并提交的第一个和第二个父级,正如您所期望的git merge -s theirs branchB.
打开App,查看更多内容
随时随地看视频慕课网APP