(Replying to https://public-inbox.org/git/383c14cc.9289.168e61d39e8.Coremail.wuzhouhui14@xxxxxxxxxxxxxxxx/ which curiously I can see there, but not in my inbox (or spam)) Git's data format doesn't make it easy to find "C" given "B" in a commit chain like A->B->C (also there could be any number of "C" successors). We need to walk the graph. This shows how to do it: https://sqlite.org/whynotgit.html#git_makes_it_difficult_to_find_successors_descendents_of_a_check_in