是否有“他们的”版本的“git merge -s ours”?

当使用git merge将主题分支“B”合并到“A”时,我会遇到一些冲突。 我知道使用“B”中的版本可以解决所有冲突。

我知道git merge -s ours 。 但我想要的是像git merge -s theirs这样的东西。

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

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


#1楼

如果你在分支A上做:

git merge -s recursive -X theirs B

测试了git版本1.7.8


#2楼

我从现在开始使用Paul Pladijs的答案。 我发现,你可以做一个“正常”合并,发生冲突,所以你这样做

git checkout --theirs <file>

通过使用来自其他分支的修订来解决冲突。 如果对每个文件执行此操作,则会产生与预期相同的行为

git merge <branch> -s theirs

无论如何,努力比合并策略更多! (这是用git版本1.8.0测试的)


#3楼

这将在现有的baseBranch中合并你的newBranch

git checkout <baseBranch> // this will checkout baseBranch
git merge -s ours <newBranch> // this will simple merge newBranch in baseBranch
git rm -rf . // this will remove all non references files from baseBranch (deleted in newBranch)
git checkout newBranch -- . //this will replace all conflicted files in baseBranch

#4楼

请参阅Junio Hamano广泛引用的答案 :如果您要丢弃已提交的内容,只需丢弃提交内容,或者无论如何都要将其保留在主要历史记录之外。 为什么在将来阅读提交来自无法提供的提交的消息时会困扰每个人?

但有时候有行政要求,或者其他一些原因。 对于那些你真的需要记录没有贡献的提交的情况,你想要:

(编辑:哇,我以前设法弄错了。这个有效。)

git update-ref HEAD $(
        git commit-tree -m 'completely superseding with branchB content' \
                        -p HEAD -p branchB    branchB:
)
git reset --hard

#5楼

我解决了我的问题

git checkout -m old
git checkout -b new B
git merge -s ours old

#6楼

较旧版本的git允许您使用“他们的”合并策略:

git pull --strategy=theirs remote_branch

但是这已被删除,正如Junio Hamano (Git维护者)在此消息中所解释的那样。 如链接中所述,您可以这样做:

git fetch origin
git reset --hard origin

但要注意,这与实际合并不同。 您的解决方案可能是您真正想要的选择。


#7楼

当使用git merge在“A”中合并主题分支“B”时,我会遇到一些冲突。 我>知道使用“B”中的版本可以解决所有冲突。

我知道git merge-是我们的。 但我想要的是像git merge> -s他们的东西。

我假设你创建了一个master的分支,现在想要合并回master,覆盖master中的任何旧东西。 当我遇到这篇文章时,这正是我想要做的。 </

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
git merge --ours是一种合并策略,它用于在合并分支时保留当前分支的更改,并忽略其他分支的更改。具体步骤如下: 1. 首先,你需要切换到你希望合并的目标分支。 2. 然后运行以下命令:git merge --ours <branchName>。其中,<branchName>是你希望合并的分支的名称。 3. 这将会合并其他分支的更改到当前分支,并保留当前分支的更改。 请注意,使用git merge --ours合并策略时,会忽略其他分支的更改,只保留当前分支的更改。如果其他分支有冲突,那么这些冲突将被标记为已解决。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Git-优雅地解决冲突:使用ours和theirs](https://blog.csdn.net/qq_41603165/article/details/104922336)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [git 虚拟合并策略merge.ours.driver](https://blog.csdn.net/u011774517/article/details/122305566)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值