2

我需要从我正在使用的脚本中显示我的存储库的最后一次提交:

git log -1 --pretty=oneline

问题来了:

  1. 由于想要使用这种格式打印,一行打印了整个提交哈希。

    git log -1 --pretty=format:%h\ %s\ %an

    但是批处理文件中的部分代码由于%符号而被识别为变量。

  2. 为了完成显示日志,有必要发送字符q,当直接输入到 git bash 时效果很好,但是当从批处理文件发送时,我得到“'q' 不被识别为内部或外部命令”。

4

2 回答 2

3

除非您在发出诸如 等命令时强制使用寻呼机git log,否则如果没有控制终端,该命令将不会使用寻呼机,这需要您键入q以退出寻呼机。

您可以使用以下方法测试我在此处描述的内容:

git log -1 --pretty=oneline | cat

注意cat上面命令末尾的使用。

如果git仍然需要您输入 a q,那么您必须查看是否没有任何配置文件(全局-- -- 或~/.gitconfig本地-- .git/config)迫使 git 使用寻呼机。

您可以通过使用以下内容来规避(不更改配置文件)git的行为:

GIT_PAGER= git log -1 --pretty=oneline

注意等号和之间的空格git

关于百分号,您可能必须提供有关您的环境的更多详细信息,因为我看不到 bash 本身将百分号解释为变量。

于 2013-01-08T15:11:42.947 回答
1

至于“q”问题:

git --no-pager
于 2016-02-29T17:58:19.903 回答