为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Git
长风秋雁 2019-07-02 14:51:08
有没有“他们”版本的“Git合并我们的”?将主题分支“B”合并为“A”时使用git merge我有些矛盾。我知道所有的冲突都可以用“B”中的版本来解决。我知道git merge -s ours..但我想要的是git merge -s theirs.为什么不存在?在与现有的冲突合并之后,如何实现相同的结果?git命令?git checkout每个未合并的B文件)更新:仅仅丢弃分支A中的任何东西(合并提交点到B版本的树)的“解决方案”不是我想要的。
查看完整描述

3 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞


一个可能的和经过测试的解决方案,用于将分支B合并到我们的签出分支A中:


# in case branchA is not our current branch

git checkout branchA


# make merge commit but without conflicts!!

# the contents of 'ours' will be discarded later

git merge -s ours branchB    


# make temporary branch to merged commit

git branch branchTEMP         


# get contents of working tree and index to the one of branchB

git reset --hard branchB


# reset to our merged commit but 

# keep contents of working tree and index

git reset --soft branchTEMP


# change the contents of the merged commit

# with the contents of branchB

git commit --amend


# get rid off our temporary branch

git branch -D branchTEMP


# verify that the merge commit contains only contents of branchB

git diff HEAD branchB

要使其自动化,可以使用分支A和分支B作为参数将其包装到脚本中。


此解决方案保留合并提交的第一个和第二个父级,正如您所期望的git merge -s theirs branchB.


查看完整回答
反对 回复 2019-07-02
  • 3 回答
  • 0 关注
  • 542 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信