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