我的公司不维护存储库git
(我们有效地使用 CVS),但为了我自己的理智,我在本地保留了一个存储库。过去,我想提出与以下相关的提交:bug-report-abcde
。我可以通过 grep 查找提交消息bug-report-abcde
并浏览它们。现在,我连接了一个 Emacs 函数来提供当前分支名称作为提交中的“标头”:
Title
Summary summary summary
Branch: bug-report-abcde
因此我的问题是:在提交合并到另一个分支之后,这是查找哪个分支是提交的原始来源的最佳方法吗?或者有没有办法从中提取这些信息git
itself?
merges-introducing() {
# merges-introducing $introducing [$descendant]
local introducing;
if introducing=`git rev-parse $1`; then
shift
git rev-list --ancestry-path --parents --reverse ^$introducing ${@-HEAD} \
| awk '{seen[$1]=1} NR>1 && !seen[$2] {print $1}' \
| xargs -r git show --oneline --no-patch
fi
}
查找包含合并历史记录中的提交的合并。
git rev-list
's --ancestry-path
仅列出底部提交的下降线上的提交(^$introducing
此处)到顶部(默认HEAD
,您当前的结帐),--parents
给他们每个人的父母,--reverse
列出最旧的提交(所以$introducing
首先),以及后处理,awk|xargs
,仅打印其第一个父级不在该祖先路径上的合并。
除非有人手动编辑合并消息,否则这些提交的主题行将显示相关(和非快进)合并的分支名称和任何源 URL,最旧的优先。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)