【问题标题】:How to exit git log or git diff [duplicate]如何退出 git log 或 git diff [重复]
【发布时间】:2012-03-18 00:46:09
【问题描述】:

我正在尝试在 Git Immersion 的帮助下学习 Git。
每当我使用git loggit diff 时,都会有一件事情让我感到沮丧:

当我遇到(END) 这个词时,我不知道下一步该怎么做。

我无法输入任何命令,最终我关闭了当前的 Bash 窗口并打开了另一个。如何输入我想使用的下一个命令?

【问题讨论】:

  • 天哪,这个问题很难用谷歌搜索,我已经要问自己了。谢谢你和拉尔斯曼!
  • 即使在我使用 q+Enter 退出后,每次我再次开始输入时, 都会重新出现。它吞噬了我的第一个角色。此后,我可以输入我想要的命令。但是,我宁愿根本没有这种行为。我在 Windows 上。有什么建议吗?
  • Windows 用户:您必须先输入 q+enter。一旦你用 cntl+c 逃脱,你就会陷入那个奇怪的循环。仅使用 q+enter 退出。
  • 无论控制台显示什么,都可以通过反复输入 q+enter+q+enter+q+enter 直到时间结束来突破。
  • 我通过使用另一个控制台来修复它,输入“ps”以查找所有进程,然后输入“kill -9 ”以杀死更少。没有其他工作。

标签: git git-diff git-log


【解决方案1】:

您在less 程序中,这使得git log 的输出可滚动。

键入 q 退出此屏幕。键入 h 以获得帮助。

如果您不想在寻呼机中读取输出并希望将其打印到终端,请将环境变量 GIT_PAGER 定义为 cat 或将 core.pager 设置为 cat(执行 @987654327 @)。

【讨论】:

  • 我一直按 q: 就像退出 vi 一样!谢谢!
  • @Affan:要退出 vi,请使用 :qq: 打开一个命令窗口,可以使用 :q 退出(但此时不会退出 vi)。
  • 避免一次寻呼机的最简单方法:“git log | cat”。我也喜欢执行“git log > /tmp/foo”,然后在我选择的编辑器中查看 /tmp/foo。出于某种原因,这对我来说效果更好。
  • q:是我在 Win 7 中所需要的。只是 Q 会导致奇怪的行为,它会在命令提示符和这个 vi 或伪 win-vi 的东西之间不断反弹。
  • 我的.gitconfig 中有core.pager = cat,所以除非我通过less 显式传输,否则git 命令只会打印它们的输出。
【解决方案2】:

END 来自用于显示日志的寻呼机(此时您仍在其中)。输入 q 退出。

【讨论】:

    【解决方案3】:

    您可以按q退出。

    git hist 正在使用寻呼机工具,因此您可以在返回控制台之前上下滚动结果。

    【讨论】:

      【解决方案4】:

      实际上,准确地说,有三种方法可以做到这一点。

      键入以下 3 个命令中的任何一个。

      1. :q
      2. :z
      3. Ctrl + z

      P.S.:有时,对于某些人来说,其中一个选项似乎不起作用,而对其他人来说却有效。

      【讨论】:

      • 我只需要按 q,因为 Git bash 中已经添加了 ":"
      【解决方案5】:

      我想对提到 CTRL + Z 作为选项的评论表示赞赏。归根结底,这将取决于您安装了 Git 的系统以及配置了哪些程序来打开文本文件(例如,less 与 vim)。 CTRL + Z 适用于 Windows 上的 vim。

      如果您在 Windows 环境中使用 Git,可能会有一些问题。只是有助于了解它们是什么。 (即记事本与 Nano 等)。

      【讨论】:

      • 我不会考虑使用像记事本这样的图形程序和像 Git 这样在终端中运行的程序。
      【解决方案6】:

      在 .bashrc 文件中添加以下别名

      git --no-pager log --oneline -n 10
      
      • --no-pager 会遇到 (END) 字
      • -n 10 将仅显示最后 10 次提交
      • --oneline 会显示提交信息,忽略作者、日期信息

      【讨论】:

      • git --no-pager 是我一直在寻找的东西,谢谢!
      • 您也可以通过GIT_PAGER=cat git diff 临时使用cat,或者将其保存在您的shell 环境中。
      【解决方案7】:

      在这种情况下,正如粗鲁的建议,键入 q 是退出 git log 的预期方式(与大多数其他寻呼机或使用寻呼机的应用程序一样)。

      但是通常,如果您只想中止当前正在执行的命令,您可以尝试 ctrl+c(但似乎不适用于 git log)或 ctrl+z (虽然在 bash 中,ctrl-z 将冻结当前运行的前台进程,然后可以使用 @987654323 将其解冻为后台进程@ 命令)。

      【讨论】:

        猜你喜欢
        • 2018-01-07
        • 2011-11-25
        • 2012-04-13
        • 1970-01-01
        • 1970-01-01
        • 2018-01-17
        • 2012-09-22
        • 1970-01-01
        • 2013-08-23
        相关资源
        最近更新 更多