有没有办法自动将合并提交消息自动填充?
合并时我需要的是:
因此,例如,合并发生 - 并且由于此合并有3个提交:
承诺A - 做了一件事 提交B - 做了B的事 提交C - 做了C的事情
我想要显示合并提交消息:
"将BranchA合并到BranchB:
提交A - 做了一件事
提交B - 做了B的事情
提交C - 做了C的东西"
有人知道如何在git bash中执行此操作吗?
使用VIM
答案 0 :(得分:2)
您可以使用类似
的组合日志消息git log --oneline BranchB..BranchA
您要将BranchA
合并到BranchB
;这将给出从BranchA
可以到达的每个提交的一行摘要,但 可以从BranchB
到达 - 也就是说,其更改将合并到{{}的提交1}}。
所以你可以接近
BranchB
(假设这不会导致快进;如果需要,您可以使用git merge -m "$(git log --oneline BranchB..BranchA)" BranchA
强制解决问题。)
但这会使--no-ff
部分失效。因此,如果这是一个问题,您可以改为编写脚本merge-msg.sh
Merged BranchA into BranchB
然后使用
echo Merged $1 into $2
echo
git log --oneline $2..$1
您可以使用git merge -m "$(merge-msg.sh BranchA BranchB)" BranchA
代替HEAD
,但这样会再次丢失提交消息中的信息(当前分支名称)。
当然,您可以尝试使用BranchB
来减少重复输入。
更新 - 所以你想要一个别名?好吧,因为我没有多久使用git alias
,所以这可能不是最直接的方式,但是:
1)创建另一个脚本myMerge.sh并将其放在可以访问的地方
git alias
2)创建别名
git checkout $2
git merge -m "$(/path/to/merge-msg.sh $1 $2)" $1
然后
git config --global alias.mymerge !/path/to/mymerge.sh
会将git mymerge feature master
合并到feature
答案 1 :(得分:0)
git merge
有一个--log
选项。
请参阅documentation。