git - git pull 后合并冲突:忘记本地版本,取远程版本……怎么样?
问题描述
我克隆了一个 repo,从中构建了一个固件,并且不时地“git pull”以保持最新状态。
这次我遇到了一个非常大的文件(json)的合并冲突,事实证明,它是在构建固件时自动创建的。所以冲突是存在的——从 git 的角度来看——但它们并不重要。我只是希望 repo 中的版本替换本地版本。
我试过git merge -s theirs
了,但这个策略不为人所知git merge
。我从物理上删除了文件以获取新副本……不……git比我聪明。
我怎样才能“忘记那个文件并将你拥有的副本发送给我”到远程 git?
解决方案
如果对于单个文件或仅部分冲突文件,请使用git checkout --theirs -- path/to/file
或git checkout --ours -- path/to/file
(取决于您想要的版本)。
如果您基本上想丢弃一个分支的所有更改并继续处理另一个分支的文件,但仍保留历史记录,请参阅如何“覆盖”而不是“合并” Git 中另一个分支上的分支?(剧透:没有“他们的”策略,只有“我们的”策略)。
如果您仍想合并所有可以合并的更改,但在发生冲突的情况下解决与其他分支版本的冲突,请使用“递归”策略(默认)和“他们的”策略选项:git merge -X theirs branch_to_merge
.
如果您不关心本地分支的历史记录,只需切换到另一个分支并删除您的本地分支。
推荐阅读
- asp.net - 如何创建包含`的javascript包
- xaml - 如何在资源字典中的 DataTemplate 中绑定命令?
- python - 无衬线竖立 mu
- reactjs - 如何从组件获取状态到导航选项?
- excel - 使用 debug.print 时,有没有办法让即时窗口显示实际选项卡而不是 4 个空格
- python - 如何从 csv 文件中删除所有点?
- node.js - 如何使用 IP 白名单将 Heroku 上的应用程序连接到 Atlas 中的数据库?
- python - 有没有办法在 matplotlib 中使用相同的图形导出一些动画?
- regex - 如果 URI 包含单词,则在 Apache .htaccess 中设置标头
- powershell - 通过 Powershell 的 HTTP 状态代码