来自git merge的压缩提交的单行消息

时间:2016-05-11 14:49:56

标签: git merge

当我这样做时:

$ git checkout master
$ git merge --squash my-feature-branch && git commit -m ""

生成的提交消息非常冗长,包含来自每个压缩提交的完整消息:

Squashed commit of the following:

commit ...
Author: ...
Date: ...

    Commit message from the latest squashed commit 

commit ...
Author: ...
Date: ...

    Commit message from the second-latest squashed commit 

    That is, the whole multi-line message unabridged.

...

如何获取

的提交消息
  • 仅包含每个压缩提交的消息的第一行
  • 没有提交标头(提交哈希,作者,日期)?

即。喜欢git log --oneline的输出,但没有提交哈希值。

--log选项提供给git merge似乎没有任何区别。

1 个答案:

答案 0 :(得分:0)

这一点shell工作,但它不漂亮:

b=my-feature-branch
git merge --squash "$b"
git commit -m "$(git log --reverse --format='- %s' .."$b")"

压缩提交从最早到最晚列出(即自然按照它们的顺序排列)并以破折号为前缀。

我不确定这是如何应对合并冲突的。