git am 正在从我的提交消息中截取字符

eck*_*kes 4 git format-patch git-am

我在 git 提交消息中使用了一些私有注释。

例如,当我修复 module 中的某些内容时MOD_A,提交消息如下所示:

FIX [MOD_A] Fixed something
Run Code Online (Sandbox Code Playgroud)

只要FIX前面有[MOD_A],如果我使用生成补丁,一切都会正常工作

git format-patch
Run Code Online (Sandbox Code Playgroud)

将此补丁作为附件发送到某处,然后使用

git am --keep-cr *.patch
Run Code Online (Sandbox Code Playgroud)

为了将此提交存储在另一个存储库中。

但是:FIX如果我前面没有[MOD_A](即[MOD_A] Fixed something),则执行后另一个存储库中会丢失消息的开头git am。整个提交消息只有Fixed something.

我怀疑它与生成的电子邮件主题行的格式有关git format-patch

Subject: [PATCH 23/27] [MOD_A] Fixed something
Run Code Online (Sandbox Code Playgroud)

看起来因为[PATCH 23/27]被括在方括号中,所以也[MOD_A]被忽略了。

有没有办法让我[MOD_A] 不被忽视?

小智 5

使用 git 作为版本“1.8.4”(可能之前),您还可以使用:git am --keep-non-patch。它将-b标志传递给git mailinfo

-b

       When -k is not in effect, all leading strings bracketed with [ and ] 
       pairs are stripped. This option limits the stripping to only the pairs
       whose bracketed string contains the word "PATCH".
Run Code Online (Sandbox Code Playgroud)

埃马努埃莱