小编Die*_*ego的帖子

git commit -a --file message.txt; git format-patch 从 message.txt 中删除换行符

当使用文本文件作为提交消息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

3
推荐指数
1
解决办法
305
查看次数

标签 统计

git ×1