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

时间:2010-10-13 12:28:57

标签: windows git command-line cmd msysgit

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

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

alt text

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

有什么想法吗?

谢谢,P。

4 个答案:

答案 0 :(得分:80)

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

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

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

如果您不希望less只是将其替换为配置中的其他寻呼机。如果您根本不想使用寻呼机,只需使用cat

git config --global --add core.pager cat

答案 1 :(得分:12)

q 退出pager(默认为g less)。

答案 2 :(得分:9)

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

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

然而,我有时根本不希望它停止;因为我已经指定了其他限制选项。我找到了这个git has a global option --no-pager来关闭配置文件中定义的任何寻呼机。

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

git --no-pager log

答案 3 :(得分:2)

Git正在使用名为less的“寻呼机”,它允许您轻松滚动大量的节目输出。但是,Git for Windows的默认设置似乎是即使输出屏幕少于一个,也能保持寻呼机正常运行。

以下是我以前的默认设置,它会始终显示(END)并等待您点击q,然后返回到您的提示:

$ git config --get core.pager
less -+F

您可以通过将选项更改为less而不是{{}来更改行为,以便-F只有在屏幕输出超过时才会继续运行(并控制键盘) 1}}。

使用

修复讨厌的寻呼机
-+F

(记录较少的$ git config --global core.pager "less -F" 选项语法将-+X选项重置为“默认”,尽管这不是我在-X中观察到的行为,因为完全删除了该选项相当于-+F,而不是-F。)