Git am是否应该忽略提交信息以"[]"开头的内容?

10

我有一个提交记录,消息类似于[你好世界]一些内容.
然后我使用git format-patch HEAD~1来创建一个补丁.
补丁的内容如下:

[Hello World]Something.

Subject: [PATCH 1/7] [Hello World] Something.
但是当我使用git am来应用补丁之后,提交信息仅为“Something”,似乎[Hello World]内容消失了。如何在应用补丁后保留中括号内的内容?
答案:但是当我使用git am来应用补丁之后,提交信息仅为“Something”,似乎[Hello World]内容消失了。如何在应用补丁后保留中括号内的内容?
2个回答

13

git am -k 可以防止删除主题开头方括号[] 中的内容,但也会保留[PATCH 1/7] 部分。 git format-patch 也有一个-k选项,它可以防止添加该类型的内容,从而允许在git format-patch | git am 循环中保留主题。


4
我有同样的担忧,并在以下链接中找到了解决方案:

http://git.661346.n2.nabble.com/Bug-Incorrect-stripping-of-the-PATCH-prefix-in-git-am-td7643405.html

我们必须使用带有“--keep-non-patch”选项的“am”命令。手册中描述如下:

$ man git am

   --keep-non-patch
       Pass -b flag to git mailinfo (see git-mailinfo(1)).

$ man 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".

不错。看起来这是在git 2.6.0中添加的,所以当我回答这个问题时还没有可用。 - qqx
我可以基于您的回答找到它。谢谢! - Honggyu Kim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接