我使用 Git Gui,当我尝试暂存选定的行时,很少会收到错误消息框:
无法暂存选定的线路。 错误:补丁失败:Foo/Bar.json:103 错误:Foo/Bar.json:补丁不适用
不过,暂存整个文件是可行的。
有谁知道可能导致此错误的原因是什么?有其他人在使用 Git Gui 时遇到过吗?
首先,确保使用最新的 Git(最新 2.23)最小版本。
正如我在“为什么git stash -p有时会失败? ”中解释的那样,git stash(由 git-gui 调用)自 Git 2.17(2018 年第二季度)以来已经有了一系列改进。
每当我尝试将一个大块分割成距离太近的较小块(更改之间的行数少于 3 行)时,这种情况就会发生在我身上。
简而言之,该补丁中的上下文行与您的本地更改发生冲突。
更多信息请参阅“ Git stash apply 没有返回工作目录? ”。
使用diff.context可能会有所帮助,最大限度地减少大块上下文足迹。