在 Git 中合并但覆盖更改

Posted

技术标签:

【中文标题】在 Git 中合并但覆盖更改【英文标题】:Merging but overwriting changes in Git 【发布时间】:2012-12-25 21:34:33 【问题描述】:

当我将 Git 中的分支合并到 master 时,我经常遇到合并冲突。有没有办法合并一个分支并覆盖当前分支中的东西?

【问题讨论】:

你的意思是像在 SVN 中一样 - 使用他们的? 我在自动选择一侧进行合并方面的经验从来都不是很好......而且,在删除他们之前检查其他人在与您相同的行附近发生了什么变化,这难道不是合并冲突的重点吗?变化? 首先是我在本地创建了分支。它比浏览文件并消除冲突要快 【参考方案1】:

-X ours 参数添加到您的git merge 命令中。

假设您在当地的分支机构工作。然后你想合并master中的内容:

git merge -X ours master

另一方面,如果您master 中并希望将您的本地分支合并到master 中,那么@elhadi 正确地说您应该使用theirs

git merge -X theirs somebranch

【讨论】:

@elhadi 我的理解是约翰亨特想要推动他的工作,而不是他们的。 这是一个本地分支是的。例如,我一直在研究 somebranch 并希望合并/替换 somebranch 文件来代替 master 上的文件。【参考方案2】:

要覆盖你分支中的东西并接受他们的工作,你应该做

git merge -X theirs remote/branch --> example:origin/master

【讨论】:

--strategy=recursive 在这里添加了什么?

以上是关于在 Git 中合并但覆盖更改的主要内容,如果未能解决你的问题,请参考以下文章

git分支覆盖合并,以及创新分支并且推送

如何用 git push 覆盖,覆盖对 git 服务器的更改?

brew update:以下未跟踪的工作树文件将被合并覆盖:

Git:合并到主文件,同时自动选择用分支覆盖主文件

如何强制“git pull”覆盖本地文件?

git代码覆盖