收到令人困惑的 git 错误消息

问题描述 投票:0回答:5

收到以下消息,这在网上似乎并不常见:

fatal: unknown style 'diff' given for 'merge.conflictstyle'

我查找了 merge.conflictstyle 和 diff 的样式,diff3 似乎合适。我不确定我可以/应该在哪里更改此设置,但它不允许我推送任何更改,因为分支位于后面,因为由于上面的消息,我无法拉取:(。

git github
5个回答
9
投票

尝试跑步

$ git config merge.conflictstyle diff3

看看是否有效。

问题是您的配置选项不正确。该命令会将其更改为正确的值,

diff3


4
投票

运行这 2 个命令:

git config --global push.default upstream

git config --global merge.conflictstyle diff3

然后再次尝试合并,现在可能可以工作了


1
投票

根据

git config
手册页
diff
不是可接受的样式。
merge
diff3
是它唯一识别的。
merge
是默认值...所以也许,正如 mipadi 提到的,
diff3
就是您想要的。


0
投票

这个 git 命令应该可以解决问题:

git config merge.conflictstyle merge

0
投票

在 Git 2.45(2024 年第 2 季度)之前,第 13 批,“

git checkout --conflict=bad
(man) 报告了错误的
conflictStyle
,就好像它被赋予了配置变量一样;已更正报告命令行选项错误。

请参见5A99C1ACommitdbeaf8eCommit135cc71Commit412AFF7Commit7457014(2024年3月14日),由phillip wood(phillipwood

(由 
Junio C Hamano -- gitster
-- 合并于 commit ccdc7d9
,2024 年 4 月 1 日)

checkout

:清理--冲突=解析
签字人:Phillip Wood

传递无效的冲突样式名称,例如“

--conflict=bad
”会给出错误消息

error: unknown style 'bad' given for 'merge.conflictstyle'

这是不幸的,因为它讨论的是配置设置而不是命令行上给出的选项。

发生这种情况是因为实现调用 
git_xmerge_config()

使用命令行上给定的值设置冲突样式。

使用新添加的

parse_conflict_style_name()
并将值沿调用链传递以覆盖配置设置。

这也意味着我们可以避免设置调用

config_context

 所需的结构 
git_xmerge_config()
现在在回调中解析该选项,以避免存储选项名称。
这是现在行为的改变

git checkout --conflict=bad --conflict=diff3


在解析“

--conflict=bad
”时会出错,而在此更改之前它会成功,因为它只会尝试解析命令行上给出的最后一个“
--conflict

”选项的值。


您现在应该看到:

error: unknown conflict style 'bad'.

© www.soinside.com 2019 - 2024. All rights reserved.