【发布时间】:2014-11-11 20:09:36
【问题描述】:
如何为我的自定义 git 日志添加换行符?
git log --pretty=tformat:"%ai %s" > log.log
我想在%s之后换行
【问题讨论】:
标签: git line-breaks
如何为我的自定义 git 日志添加换行符?
git log --pretty=tformat:"%ai %s" > log.log
我想在%s之后换行
【问题讨论】:
标签: git line-breaks
您可以使用%n 作为新行:
git log --pretty=tformat:"%ai %s%n" > log.log
【讨论】:
Pjz 的答案对于 Windows 来说并不完全正确,但经过一番尝试后,我就让它工作了。需要颠倒 10 和 13 字符,并且它们需要采用正确的十六进制格式:
git log --pretty=tformat:"%ai %s%x0D%x0A" >log.log
【讨论】:
原因是 git 使用 LF 作为分隔符,而记事本和大多数 Windows 应用程序使用 CRLF。以下脚本使我能够生成包含所有更改的文件。
del files.txt >nul 2>nul
git show --pretty="format:" --name-only HEAD > changes.txt
for /F "tokens=*" %%A in ('type "changes.txt"') do echo %%A >> files.txt
【讨论】:
Windows 的其他答案会导致文件中出现额外的 0x0A 字符。 Git 已经将 0x0A 附加到每个日志条目,因此您只需添加缺少的 0x0D:
git log --pretty=tformat:"%ai %s%x0D" >log.log
或在批处理文件中:
git log --pretty=tformat:"%%ai %%s%%x0D" >log.log
【讨论】:
对于那些使用 git 制作 Windows 批处理文件的人,请记住将单 % 转换为双 %%。 还为回车和换行添加十六进制
例如
git log --pretty=tformat:"%ai %s%x0D%x0A" >log.log
转换为窗口批处理文件
git log --pretty=tformat:"%%ai %%s%x0D%x0A" >log.log
【讨论】:
引号会帮你省钱 - 只需将右引号放在下一行,例如:
git log --pretty=tformat:"%ai %s
" >log.log
它应该可以工作。
或者,在 git log --help 的 PRETTY FORMATS 标题下,它列出:
· %m: left, right or boundary mark
· %n: newline
· %%: a raw %
虽然“换行符”显然是 unix 换行符,但在 Windows 上,您需要使用直接的十六进制代码,例如:
git log --pretty=tformat:"%ai %s%x10%x13" >log.log
【讨论】:
我刚才遇到了类似的情况,我想添加一个换行符,因为cat -e 在 bash 脚本中运行命令时会弄乱格式。我已经尝试过这个页面和其他页面中的建议,但真正解决我的问题的只是删除format:。仅键入 git log --pretty="%H" 在最后一个结果之后添加一个正常的换行符。
【讨论】: