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

问题描述 投票:8回答:6

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

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

我想在%s之后换行

git line-breaks
6个回答
7
投票

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

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

5
投票

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

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

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

2
投票

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

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

或者在批处理文件中:

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

1
投票

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

例如

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

转换为窗口批处理文件

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

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
© www.soinside.com 2019 - 2024. All rights reserved.