我已经阅读了网站上我能找到的所有内容,但没有任何内容可以回答我的问题。
我在分离头状态和运行后都尝试过
git checkout master
,但是当我输入 git diff
时,我收到了响应 less -r: less: command not found
我对 git 非常陌生,我不确定为什么会发生这种情况。我所在的文件 100% 附加了 Git,因为我昨天能够访问它。也许我今天以错误的方式访问了该文件?
我在 Mac 上使用终端。
非常感谢您给我的任何帮助。
export PATH=/usr/local/bin:$PATH # in the ~/.bashrc
请注意,在 Git 2.46(2024 年第 3 季度)之前,第 19 批,当
GIT_PAGER
未能生成时,根据所采用的代码路径,我们会立即失败(正确)或只是将有效负载喷出到标准输出(错误)。 GIT_PAGER
失败时,代码总是立即失败。
请参阅提交 78f0a5d(2024 年 6 月 23 日),作者:Rubén Justo (
rjusto
)。gitster
-- 合并于 commit 4e18cd5,2024 年 7 月 8 日)
:当分页到不存在的命令时死掉pager
签字人:Rubén Justo
当尝试从
执行不存在的程序时,我们会显示错误。GIT_PAGER,
但是,我们还将完整的文本发送到终端并返回成功的退出代码。
这可能会让用户感到困惑,并且显示的错误很容易被冗长的文本所掩盖。例如,发送 50 MB 文本后,错误消息将远远高于:
$ GIT_PAGER=non-existent t/test-terminal.perl git log | wc -c error: cannot run non-existent: No such file or directory 50314363
让我们通过中止进程并返回错误来明确错误,以便用户可以轻松纠正错误。
这将是更改的结果:
$ GIT_PAGER=non-existent t/test-terminal.perl git log | wc -c error: cannot run non-existent: No such file or directory fatal: unable to execute pager 'non-existent' 0
我们在此提交中引入的行为更改会影响 t7006 中的两个测试,这是关于测试覆盖率的一个好兆头,需要我们解决它。
第一个测试是git跳过分页不存在的命令。
该测试来自f7991f0(:清理trace2测试中的SIGPIPE处理,2021-11-21,Git v2.35.0-rc0 - merge列于batch#2)(t7006:清理Trace2 测试中的 SIGPIPE 处理,2021-11-21,)其中对最初在 c24b7f6 中引入的测试进行了修改(“t7006
:使用和不使用 SIGPIPE 的退出代码测试”,2021-02-02 , Git v2.31.0-rc0 -- merge列于batch #10)。pager
恕我直言,最初的测试与我们这次提交的方向相同。受影响的第二个测试是:“不存在的寻呼机不会导致崩溃”,在f917f57中引入(“
:修复寻呼机程序不存在时的崩溃”,2021-11-24,Git v2.35.0 -rc0 -- merge 列于 batch #2)。pager
正如其名称所示,它的目的是检查当指向不存在的程序时,我们不会引入导致崩溃的回归。GIT_PAGER
这个测试现在可能被认为是多余的,因为我们已经有几个测试隐式检查
中不存在的命令会产生什么结果。GIT_PAGER
然而,让我们保持良好的腰带策略;让它适应新世界。最后,值得注意的是,如果
中指定的命令是 shell 命令,我们不会更改行为。GIT_PAGER
在这种情况下,它是:$ GIT_PAGER=:\;non-existent t/test-terminal.perl git log :;non-existent: 1: non-existent: not found died of signal 13 at t/test-terminal.perl line 33.