当使用文本文件作为提交消息git commit -a --file message.txt,然后生成带有git format-patch提交消息的补丁文件时,所有换行符都会被删除(Linux)。
看来罪魁祸首是 format-patch
默认情况下,单个补丁的主题是“[PATCH]”,然后是从提交消息到第一个空行的行串联(参见 git-commit[1] 的讨论部分)。
我还找不到改变这种默认行为的方法。有办法吗?
如何更改它以逐字获取提交消息message.txt并将其放入生成的 0001-xxx.patch 文件中?
所以从
* change 1
* change 2
Run Code Online (Sandbox Code Playgroud)
它去
* change 1 * change 2
Run Code Online (Sandbox Code Playgroud)
运行时git format-patch,我显然希望它保留换行符。
这是我检查结果的方式:
less message.txt
git commit -a --file message.txt
git format-patch -1 my_branch
less *.patch
Run Code Online (Sandbox Code Playgroud)
为了澄清和确认,git show显示带有完整换行符的提交消息。我正在使用 Linux 术语。
编辑:重写问题以反映问题核心的格式补丁
EDIT2:我找到了一个解决方法:如果 message.txt 中的第一行后面有一个空行,则保留文件格式的其余部分。
所以这就是我必须格式化 message.txt 的方式
first line
empty line
* change 1
* change 2
Run Code Online (Sandbox Code Playgroud)
有了这个,我解决了我的直接问题,但不确定这是否正确。
git ×1