interactive.diffFilter在使用diff进行交互隐藏期间发生git错误

interactive.diffFilter在使用diff进行交互隐藏期间发生git错误,git,diff,Git,Diff,我的git是diff 在交互式隐藏期间,我从git收到以下错误(git stash save-p'some stash name'): 致命:interactive.diffFilter的输出不匹配 提示:过滤器必须保持一对一的对应关系 提示:在其输入和输出行之间 如果您有任何关于如何解决此问题的想法,我们将不胜感激我最终设法找到了一个解决方案,以防它对任何人都有帮助: 找到你的.gitconfig文件(我在mac上的文件在~/.gitconfig中) 在文本编辑器中打开它 查找以下行:

我的git是diff

在交互式隐藏期间,我从git收到以下错误(
git stash save-p'some stash name'
):

致命:interactive.diffFilter的输出不匹配

提示:过滤器必须保持一对一的对应关系

提示:在其输入和输出行之间


如果您有任何关于如何解决此问题的想法,我们将不胜感激

我最终设法找到了一个解决方案,以防它对任何人都有帮助:

  • 找到你的.gitconfig文件(我在mac上的文件在~/.gitconfig中)
  • 在文本编辑器中打开它
  • 查找以下行:
  • 删除
    diffFilter=diff-so-fancy
  • 拯救

问题已解决。

在使用
-p
-patch
)模式时,您的最佳选择可能只是关闭花式模式。除此之外,您还必须修复diff-so-fancy代码中的任何错误,使其按照
--补丁
代码需要的方式运行,和/或使
--补丁
代码足够智能,以理解
diff-so-fancy
的输出。(当然,您也可以完全停止使用
--patch
模式。)(可能有效也可能无效的想法:在使用
--patch
模式时,将
pager.diff
设置为
false
。diff如此奇特的代码通过插入自身作为diff寻呼机来工作;禁用寻呼机应产生
--patch
模式所需的机器可读补丁输出。)感谢@torek的建议,您让我找到了在您选择的编辑器中快速打开全局gitconfig的解决方案:
git config--global--edit
(使用
$git\u editor
core.editor
$VISUAL
$editor
或默认内置,以最先找到的为准)。不过,我在前面的评论中提出的想法是,
git-c pager.diff=false add-p
可能会直接绕过过滤器。这可能不会,这取决于奇特的交互代码的功能。另一种可能性是:
git-c interactive.difffilter=add-p
,但我不确定空值在这里是否有效。谢谢@torek,但是我不希望每次添加/stash/etc时都要编写这么长的命令,也不希望为它创建别名。
[interactive]
    diffFilter = diff-so-fancy