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

时间:2014-11-11 20:09:37

标签: git line-breaks

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

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

我想在%s

之后换行

6 个答案:

答案 0 :(得分:7)

您可以将%n用作新行:

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

答案 1 :(得分:5)

Pjz的答案对于Windows来说并不完全正确,但是通过一点点的游戏,我得到了它的工作。需要颠倒10个和13个字符,它们需要采用正确的十六进制格式:

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

答案 2 :(得分:4)

原因是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

答案 3 :(得分:1)

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

例如

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

转换为窗口批处理文件

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

答案 4 :(得分:1)

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

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

或在批处理文件中:

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

答案 5 :(得分:0)

报价会省去你 - 只需在下一行贴上报价,如:

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