【问题标题】:git log with line break when exported to text file导出到文本文件时带有换行符的 git log
【发布时间】:2014-11-11 20:09:36
【问题描述】:

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

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

我想在%s之后换行

【问题讨论】:

    标签: git line-breaks


    【解决方案1】:

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

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

    【讨论】:

    • 我这样做了,在记事本++中查看时它可以工作,但在记事本中查看时看起来仍然没有换行符
    • 它对我也不起作用问题是 git log 仅使用 \n 分隔文件,而记事本和 \大多数 Windows 应用程序使用 \r\n (CRLF)。如果通过运行下面我的答案中发布的脚本来修复它
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

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

        或在批处理文件中:

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

        【讨论】:

          【解决方案5】:

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

          例如

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

          转换为窗口批处理文件

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

          【讨论】:

            【解决方案6】:

            引号会帮你省钱 - 只需将右引号放在下一行,例如:

            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
            

            【讨论】:

            • 请在 CoverosGene 的回答中查看我的评论。在手上如何在命令行中创建下一行?
            【解决方案7】:

            我刚才遇到了类似的情况,我想添加一个换行符,因为cat -e 在 bash 脚本中运行命令时会弄乱格式。我已经尝试过这个页面和其他页面中的建议,但真正解决我的问题的只是删除format:。仅键入 git log --pretty="%H" 在最后一个结果之后添加一个正常的换行符。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2014-10-27
              • 2011-01-04
              • 2012-11-05
              • 1970-01-01
              • 2017-06-16
              • 1970-01-01
              相关资源
              最近更新 更多