我需要从我正在使用的脚本中显示我的存储库的最后一次提交:
git log -1 --pretty=oneline
以下是问题:
由于想要以这种格式打印,一行打印整个提交哈希值。
git log -1 --pretty=format:%h\ %s\ %an
但由于%
符号,批处理文件中的部分代码被识别为变量。
为了完成显示日志,有必要发送字符q
,它直接输入到git bash时效果很好,但是当从批处理文件发送时,我得到“'q'不被视为内部或外部命令“。
答案 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