我想解决 Git 存储库中的 merge 冲突。
怎么做 ?
最佳答案
试试:git mergetool
它将打开一个GUI,逐步引导您解决每个冲突,然后您可以选择如何 merge 。有时此后需要进行一些手动编辑,但通常仅此一项就足够了。这肯定比手工完成整个事情好得多。
根据@JoshGlover评论:
命令
下面是使用vimdiff
解决 merge 冲突的示例过程。基于this link
步骤1 :在终端中运行以下命令
git config merge.tool vimdiff
git config merge.conflictstyle diff3
git config mergetool.prompt false
这会将vimdiff设置为默认的 merge 工具。步骤2 :在终端中运行以下命令
git mergetool
步骤3 :您将看到以下格式的vimdiff显示 ╔═══════╦══════╦════════╗
║ ║ ║ ║
║ LOCAL ║ BASE ║ REMOTE ║
║ ║ ║ ║
╠═══════╩══════╩════════╣
║ ║
║ MERGED ║
║ ║
╚═══════════════════════╝
这4个 View 是您可以使用ctrl + w在这些 View 之间导航。您可以使用ctrl + w和j直接进入MERGED View 。
有关vimdiff导航here和here的更多信息
步骤4 。您可以通过以下方式编辑MERGED View
如果您想从REMOTE获得更改
:diffg RE
如果要从BASE获得更改:diffg BA
如果您想从本地获得更改:diffg LO
步骤5 。保存,退出,提交和清理:wqa
保存并退出vigit commit -m "message"
git clean
删除由diff工具创建的其他文件(例如* .orig)。