不能将 `git mergetool` 与 `git am` 或 `git apply` 或 `patch` 一起使用
Posted
技术标签:
【中文标题】不能将 `git mergetool` 与 `git am` 或 `git apply` 或 `patch` 一起使用【英文标题】:Cannot use `git mergetool` with `git am` or `git apply` or `patch` 【发布时间】:2019-03-04 11:47:13 【问题描述】:git mergetool
很棒(在我的例子中,我使用 kdiff3)。但是,无法使用它来解决来自git am
或git apply
(甚至使用patch
命令)的冲突。事实上,mergetool 需要 3 个文件才能工作(基本版本和两个修改版本),而 git am
需要修改版本和补丁。
您知道使用git mergetool
处理与git am
产生的冲突的方法吗?
我认为有必要从修改版本和补丁中猜测基础文件。如果单独考虑每个块,看起来很棘手,但并非不可能。
【问题讨论】:
git mergetool
如果遇到三向合并冲突,应该可以工作。 git am
运行git apply --3way
,它使用git diff
输出中的index
行来定位或重建(如果可能)这三个对象。如果您发现补丁不适用并且缺少或错误或不足的index
行,那么您无能为力。好吧,没有什么是三通的:你可以使用git apply --reject
,然后在编辑器中手动按摩被拒绝的部分,就像我们过去在糟糕的过去所做的那样。 ..
【参考方案1】:
正如torek 提到的,git mergetool
将参与其中,如果您是:
git am --3way
执行常规 git am,但将 config am.threeWay
设置为 true。
问题仍然存在于常规补丁命令中。
【讨论】:
以上是关于不能将 `git mergetool` 与 `git am` 或 `git apply` 或 `patch` 一起使用的主要内容,如果未能解决你的问题,请参考以下文章
将 2 个 git 存储库与冲突结合在一起后,我希望 Powershell 中的 git mergetool 始终为每个文件选择(m)修改
apache_conf 将DiffMerge配置为默认git mergetool
使用 Sublimerge 配置 git mergetool
如何解决与“git mergetool”的多个冲突而不必关闭文件之间的编辑器?
使用 IntelliJ 作为 git mergetool 总是一启动就退出
ini Git for Windows:将Helix Visual Merge Tool(P4Merge)设置为默认的mergetool