我想解决 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导航herehere的更多信息
步骤4 。您可以通过以下方式编辑MERGED View
如果您想从REMOTE获得更改
:diffg RE
如果要从BASE获得更改
:diffg BA
如果您想从本地获得更改
:diffg LO
步骤5 。保存,退出,提交和清理:wqa保存并退出vigit commit -m "message"git clean删除由diff工具创建的其他文件(例如* .orig)。

10-08 08:07