Git Windows命令提示符在Git命令中被卡住(END)

pap*_*lip 48 windows git command-line cmd msysgit

我有Git for Windows安装程序(msysgit),它在过去几天工作正常,今天我遇到了一个奇怪的错误.

在Windows命令提示符或与msysgit捆绑在一起的Git Bash中发出Git命令时,我会看到一个奇怪的"(END)"行,然后我就不能发出任何其他的comamnds.

替代文字

此时我得到的只是系统发出哔哔声.

有任何想法吗?

谢谢,P

Jul*_*lia 86

Git想要向您显示多个信息屏幕,为此它会调用标准的unix寻呼机程序less.只需键入q以在不再需要在输出中导航时返回到提示.

  • j 向下移动一行
  • k 移动一行
  • <space> 向下移动一页
  • b 向上移动一页
  • h 显示帮助

如果你想有效地使用git,你应该学习基本的unix工具.即使git构建并在Windows上运行,它也几乎是平台上的外来软件.

如果您不想less在配置中将其替换为另一个寻呼机.如果您根本不想使用寻呼机,请使用cat:

git config --global --add core.pager cat
Run Code Online (Sandbox Code Playgroud)

  • +1用'cat`换掉`less`.不是说我想要那样做! (3认同)

Ski*_*ick 13

按此q键退出寻呼机(less默认情况下位于git中).

  • @paperclip你为什么要这样?很快你就需要翻阅结果 - 现在只有你开始时你只得到一页.习惯按`q`. (2认同)
  • @Skilldrick当你没有超过1页时,需要突破寻呼机是违反直觉的(对于Windows命令行用户).如果我需要页面输出我明确地管道更多,例如git diff | 更多. (2认同)

Dav*_*ulp 9

当我在寻找同样的事情时,我第一次遇到这个问题; 不必退出日志命令.我已经找到了我喜欢的答案,所以即使它在原始询问之后很好,我会添加这个答案,以提供一个我在自己的搜索中找不到的额外解决方案.

其他人已经说明了为什么(END)存在 - 结果通过寻呼机传输,可以配置为不同的寻呼机.

但是,我有时根本不希望它停止; 因为我已经指定了限制的其他选项.我发现这个git有一个全局选项 --no-pager来关闭配置文件中定义的任何寻呼机.

这个全局选项在git命令本身上,可用于所有子命令,并放在子命令之前,如下所示:

git --no-pager log
Run Code Online (Sandbox Code Playgroud)


Col*_*ett 5

Git 使用名为 的“分页器” less,它允许您轻松地滚动浏览大量程序输出。然而,Windows 版 Git 的默认设置似乎是即使输出少于一屏也保持分页器运行

这是我之前的默认设置,它总是显示(END)并等待您点击,q然后再返回到提示符:

$ git config --get core.pager
less -+F
Run Code Online (Sandbox Code Playgroud)

您可以通过将选项更改为 来更改行为,以便仅less在输出超过一屏时才继续运行(并控制键盘)。-F-+F

修复讨厌的寻呼机

$ git config --global core.pager "less -F"
Run Code Online (Sandbox Code Playgroud)

-+Xless 的选项语法被记录为将-X选项重置为其“默认”,尽管这不是我观察到的行为-+F,因为完全删除选项相当于-F,而不是-+F。)