如何获取Git两个版本发布之间新增的提交记录?
问题:获取两个版本间新增提交列表的脚本优化
我需要获取两个版本发布之间新增的提交列表,为此编写了一段脚本,思路是找到两个版本的共同祖先并列出该节点之后的提交,但结果中包含了过旧的提交。
原始脚本
set -euo pipefail git fetch origin last_release=hotfix/x.y.z this_release=release/t.f.g function get_last_commit() { branch=$1 rev=$(git log -n1 origin/$branch --format=%h) echo >&2 "Last commit on $branch: $rev" echo $rev } export rev_develop=$(get_last_commit develop) export rev_last=$(get_last_commit $last_release) export rev_this=$(get_last_commit $this_release) export common_ancestor=$(git merge-base --octopus $rev_this $rev_develop $rev_last) echo >&2 "common ancestor: $common_ancestor" git log --oneline $common_ancestor..$rev_this
优化后的方案
根据@torek的建议移除--octopus参数后,已能正确获取当前版本最后提交与共同祖先之间的提交;另外添加以下命令可获取hotfix分支中未合并回develop的提交:
git log --oneline $common_ancestor..$rev_last
内容的提问来源于stack exchange,提问作者bruvio
相关产品推荐
相关产品推荐

