导出到文本文件时带换行符的git日志

导出到文本文件时带换行符的git日志,git,line-breaks,Git,Line Breaks,如何为自定义git日志添加换行符 git log --pretty=tformat:"%ai %s" > log.log 我想在%s后换行,引号将保存您-只需将结束引号放在下一行,如: git log --pretty=tformat:"%ai %s " >log.log 它应该会起作用 或者,在git log--help的PRETTY FORMATS标题下,它列出了: · %m: left, right or boundary mark ·

如何为自定义git日志添加换行符

git log --pretty=tformat:"%ai %s" > log.log

我想在
%s

后换行,引号将保存您-只需将结束引号放在下一行,如:

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

您可以使用
%n
作为新行:

git log --pretty=tformat:"%ai %s%n" > 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

对于那些使用git制作Windows批处理文件的人,请记住将单%%转换为双%%。 还为回车和换行添加了十六进制

比如说

git log --pretty=tformat:"%ai %s%x0D%x0A" >log.log
转换为窗口批处理文件

git log --pretty=tformat:"%%ai %%s%x0D%x0A" >log.log

Pjz的答案对于Windows来说并不完全正确,但通过一点尝试,我让它开始工作了。10和13个字符需要颠倒,并且需要采用正确的十六进制格式:

git log --pretty=tformat:"%ai %s%x0D%x0A" >log.log

Windows的其他答案会导致文件中出现额外的0x0A字符。Git已经将0x0A附加到每个日志条目,因此您只需添加缺少的0x0D:

git log --pretty=tformat:"%ai %s%x0D" >log.log
或在批处理文件中:

git log --pretty=tformat:"%%ai %%s%%x0D" >log.log

我这样做了,当在notepad++中查看时它可以工作,但在notepad中查看时它仍然看起来没有换行符。它对我也不起作用。问题是,git仅在notepad和大多数windows应用程序使用\r\n(CRLF)时使用\n来记录单独的文件。如果通过运行下面我的答案中发布的脚本修复了它,请查看CoverosGene答案中的我的评论。另一方面,如何在命令行中生成下一行?