Como posso saber se um commit é um ancestral de outro commit (ou vice-versa)?

Git é umDAG de instantâneos, com cada nó no gráfico representando uma confirmação. Cada commit pode ter 'n' commits pai.

Dados quaisquer dois commits, existe uma maneira única e concisa de discernir a "ordem" desses dois no DAG.git rev-list parece ser o mais promissor, mas não consigo encontrar o encantamento certo.

Idealmente, eu teria algo parecido com o seguinte

$ git related hash1 hash2
hash1 is ancestor of hash2

OU

hash2 is ancestor of hash1

OU

hash1 unrelated to hash2

OU

hash1 is equal to hash2

questionAnswers(5)

yourAnswerToTheQuestion