之前一直用 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 在执行log
和diff
这类命令,为了结果方便显示,会使用一个分页器,这个分页器默认是使用的less
,但我的不知道怎么变成了more
,所以才会报more这个指令找不到的错误。只要改成less即可(按理说windows上也没有less这个指令,但确不会报错,这个原因我也不懂,希望有人解答)
解决方案
git执行命令 git config --global core.pager 'less'
即可
意思是把默认的分页器实现改为less
参考链接