给定两个(或更多)提交,我想找到最老的合并加入它们。像git merge-base
(找到最年轻的共同祖先)的反面词。
换句话说:我想调查合并提交,它合并了两个给定的提交(发生了对同一文件的更改)。
答案 0 :(得分:0)
如果$ a和$ b是两个提交哈希,并且它们都包含在master中,则说
git rev-list $a..master --ancestry-path >a
git rev-list $b..master --ancestry-path >b
然后使用diff工具查找a b的最后一条公共线。
答案 1 :(得分:0)
oldest-merge() {
( for c; do git log --all --merges --ancestry-path ^$c --pretty='%aI %h %s'; done ) \
| sort | uniq -c | awk "\$1 == $# {print;exit}"
}
oldest-merge `git rev-list --all --grep=BUG-27182` # e.g.
最后一个awk采用所有合并祖先列表中显示的第一个提交。