之前一直用 SourceTree 操作 Git 。昨天试了下命令行,结果一用就报错,执行git branch会给出一个错误

error: cannot spawn more: No such file or directory

看起来不是什么很严重的错误,只是报错,并没有影响到 Git 的实际功能,但总归看着不舒服,抱着解决问题的态度,开始熟悉的先百度再Google,结果翻遍全网都没找到一个答案。

于是乖乖的去思否和 Stack Overflow 提问,在 @justjavac 的提示下,突然想到了问题的根源。

问题原因

error: cannot spawn more: No such file or directory这个错误意思是不存在more指令,我是windows平台,自然这个指令肯定不存在。再进一步思考,为什么Git会再windows平台执行一个根本不存在的指令,而且是在git branch这类命令的时候。这里直接说原因,文末放参考文章链接。

原因是 Git 在执行logdiff这类命令,为了结果方便显示,会使用一个分页器,这个分页器默认是使用的less,但我的不知道怎么变成了more,所以才会报more这个指令找不到的错误。只要改成less即可(按理说windows上也没有less这个指令,但确不会报错,这个原因我也不懂,希望有人解答

解决方案

git执行命令 git config --global core.pager 'less' 即可

意思是把默认的分页器实现改为less

参考链接

Last modification:February 24th, 2020 at 04:46 pm