如何解决Git仓库中的合并冲突?

内容来自 DOC https://q.houxu6.top/?s=如何解决Git仓库中的合并冲突?

如何解决我的Git仓库中的合并冲突?


试试:

git mergetool

它会打开一个GUI,逐步引导你解决每个冲突,并让你选择如何合并。有时候需要手动编辑一下,但通常它自己就够了。当然,它肯定比手工操作要好得多。


根据Josh Glover的评论:

这个命令不一定会自动打开一个GUI,除非你安装了某个工具。在我的情况下,运行git mergetool后使用了vimdiff。你可以安装以下工具之一来使用它:meldopendiffkdiff3tkdiffxxdifftortoisemergegvimdiffdiffuseecmergep4mergearaxisvimdiffemerge


下面是一个使用vimdiff解决合并冲突的示例程序,基于这个链接。

  1. 在终端中运行以下命令
git config merge.tool vimdiff
git config merge.conflictstyle diff3
git config mergetool.prompt false

这将把vimdiff设置为默认的合并工具。
2. 在终端中运行以下命令

git mergetool

  1. 你会看到一个以下列格式显示的vimdiff
  ╔═══════╦══════╦════════╗
  ║       ║      ║        ║
  ║ LOCAL ║ BASE ║ REMOTE ║
  ║       ║      ║        ║
  ╠═══════╩══════╩════════╣
  ║                       ║
  ║        MERGED         ║
  ║                       ║
  ╚═══════════════════════╝

这些视图是:

  • LOCAL: 这是来自当前分支的文件
  • BASE: 共同祖先,这个文件在两个更改之前看起来是什么样子的
  • REMOTE: 你正在将其合并到你的分支中的文件
  • MERGED: 合并结果;这是保存在合并提交中并在将来使用的。

你可以使用ctrl+w在这些视图之间导航。你可以直接通过按ctrl+w,然后按j键来访问MERGED视图。

有关vimdiff导航的更多信息,请参阅这里和这里。
4. 你可以像这样编辑MERGED视图:

  • 如果你想获取来自REMOTE的更改

    • :diffg RE
  • 如果你想获取来自BASE的更改

    • :diffg BA
  • 如果你想获取来自LOCAL的更改

    • :diffg LO
  1. 保存、退出、提交和清理

:wqa保存并退出vi编辑器

git commit -m "message"

git clean删除额外的文件(例如*.orig)。 警告: 它将所有未跟踪的文件都删除,如果你不传递任何参数的话。

posted @   小满独家  阅读(81)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示