如何将字符 q 从批处理文件发送到 GIT
Posted
技术标签:
【中文标题】如何将字符 q 从批处理文件发送到 GIT【英文标题】:How can I send the character q to GIT from batch file 【发布时间】:2012-12-22 10:50:33 【问题描述】:我需要从我正在使用的脚本中显示我的存储库的最后一次提交:
git log -1 --pretty=oneline
问题来了:
一行打印整个提交哈希,因为要使用这种格式打印。
git log -1 --pretty=format:%h\ %s\ %an
但是由于%
符号,批处理文件中的部分代码被识别为变量。
为了完成显示日志,需要发送字符q
,当直接输入到 git bash 时效果很好,但是从批处理文件发送时我得到“'q' is not识别为内部或外部命令”。
【问题讨论】:
注意:在 Windows 批处理脚本中,%%h %%s %%an
可以工作。
【参考方案1】:
至于“q”问题:
git --no-pager
【讨论】:
【参考方案2】:除非您在发出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 本身解释为变量。
【讨论】:
使用“| cat”解决了这个问题,谢谢rbrito。对不起,我正在处理一个批处理文件来显示提交。 @JavierChauvin,如果您认为该答案有用,请点赞/选择它作为您问题的答案。以上是关于如何将字符 q 从批处理文件发送到 GIT的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用处理程序的情况下使用 ajax 从客户端将文件发送到服务器端?