5

给定两个(或更多)提交,我想找到加入它们的最旧的合并。类似于相反的东西git merge-base(找到最年轻的共同祖先)。请注意,我正在寻找的提交将是起始提交的年轻后代。

换句话说:我想调查合并两个给定提交的合并提交(同一文件发生更改的地方)。

4

2 回答 2

0

如果 $a 和 $b 是两个提交哈希并且它们都包含在 master 中,那么说

git rev-list $a..master --ancestry-path >a
git rev-list $b..master --ancestry-path >b

然后使用 diff 工具找到 a 和 b 的最后一个公共行。

于 2018-11-01T17:11:27.517 回答
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 采用出现在所有合并祖先列表中的第一个提交。

于 2019-10-15T21:11:11.873 回答