如何从批处理文件中将字符q发送到GIT

时间:2013-01-08 14:44:42

标签: batch-file git-bash

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

git log -1 --pretty=oneline

以下是问题:

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

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

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

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

2 个答案:

答案 0 :(得分:3)

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

您可以使用,比如说:

来测试我在这里描述的内容
git log -1 --pretty=oneline | cat

请注意在上面命令末尾使用cat

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

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

GIT_PAGER= git log -1 --pretty=oneline

注意等号和git之间的空格。

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

答案 1 :(得分:1)

至于“q”问题:

git --no-pager