我正在创建一个简单的批处理文件,以我的首选格式运行git日志。当我在PowerShell中时,我会输入:
git log --pretty=format:"%ai%x09%H%x09%s" > commitlog.csv
它给了我我想要的输出。它是提交作者的日期和时间以ISO格式,后跟制表符,接着是完整的SHA哈希,再跟着注释/描述。它在Excel中以我想要的方式打开。
我试图制作一个简单的批处理文件来完成完全相同的事情,这样我就不必记住格式字符串或搜索命令历史记录(它偶尔也会被清除)。我注意到我必须使用双百分号%%来替换所有百分号。
在批处理文件的一个版本中,我有这样一行:
git log --pretty=format:"%%ai%%x09%%H%%x09%%s" > commitlog.csv
我注意到这个命令的回显如下:
git log --pretty=format:"%ai%x09%H%x09%s" 1>commitlog.csv
这段内容似乎有一个“1”插入其中,但奇怪的是它创建了一个包含信息的文件,只是将制表符排除在外,所以所有内容都连在一起。我读到大于号">"需要前面加上脱字符号"^>"。
因此,在下一个批处理文件版本中,我将该行更改为:
git log --pretty=format:"%%ai%%x09%%H%%x09%%s" ^> commitlog.csv
这将像这样回显该命令:
git log --pretty=format:"%ai%x09%H%x09%s" > commitlog.csv
我已经长时间地、多次地盯着它看了,它似乎与我在PowerShell中输入的内容完全相同,我期望得到相同的结果,但是却收到了错误消息:
fatal: ambiguous argument '>': unknown revision or path not in the
working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
我哪里做错了吗?