如何解决如何解决 Git 存储库中的合并冲突?
尝试: git mergetool
它会打开一个 GUI,引导您解决每个冲突,您可以选择如何合并。有时它需要在之后进行一些手动编辑,但通常它本身就足够了。这肯定比手工完成整个事情要好得多。
命令
除非您安装 GUI,否则不一定会打开 GUI。
git mergetool
为我奔跑导致vimdiff
被利用。您可以安装以下工具之一来使用它:meld
,opendiff
,kdiff3
,tkdiff
,xxdiff
,tortoisemerge
,gvimdiff
,diffuse
,ecmerge
,p4merge
,araxis
,vimdiff
,emerge
.
下面是vimdiff
用于解决合并冲突的示例过程。基于此链接
:在终端中运行以下命令
git config merge.tool vimdiff
git config merge.conflictstyle diff3
git config mergetool.prompt false
这会将 vimdiff 设置为默认合并工具。
:在终端中运行以下命令
git mergetool
:您将看到以下格式的 vimdiff 显示
╔═══════╦══════╦════════╗
║ ║ ║ ║
║ LOCAL ║ BASE ║ REMOTE ║
║ ║ ║ ║
╠═══════╩══════╩════════╣
║ ║
║ MERGED ║
║ ║
╚═══════════════════════╝
这 4 个视图是
LOCAL – 这是来自当前分支的文件
BASE – 共同祖先,文件在两次更改之前的外观
远程 - 您要合并到分支中的文件
MERGED – 合并结果,这是保存在 repo 中的内容
您可以使用ctrl+在这些视图之间导航w。您可以使用ctrl+w后跟j.
。您可以通过以下方式编辑 MERGED 视图
如果您想从 REMOTE 获取更改
:diffg RE
如果您想从 BASE 获取更改
:diffg BA
如果您想从 LOCAL 获取更改
:diffg LO
。保存、退出、提交和清理
:wqa
保存并退出 vi
git commit -m "message"
git clean
删除由 diff 工具创建的额外文件(例如 *.orig)。
解决方法
我想解决我的Git存储库中的合并冲突。
我怎样才能做到这一点?