Как прокомментировал chepner , Git имеет только обратные указатели. Найти потомков коммита C необходимо преобразовать в новую и другую проблему, которая вместо этого: Найдите предков коммита T, которые сами имеют коммит C в качестве предка. Здесь T - это коммит с советами, или в вашем случае, возможно, много коммитов с советами - все ветви и, возможно, все теги и все другие ссылки.
Команда git rev-list
подходит для решения проблемы.В частности, вы можете сделать так, чтобы он проходил по графику от кончиков (потомков) к родителям, но собирал ребра, пройденные во время процесса, а затем переворачивал их, используя --children
.Как отмечает документация , это позволяет переписать родительские элементы и упростить историю.
(я думаю, вам нужно будет запустить git rev-list --children
на любом начальном коммите, который вы выберете, и проанализировать его вывод самостоятельноприменять дополнительные ограничения. Вы можете использовать родительские элементы коммитов, из которых вы ищете, в качестве точек остановки, используя синтаксис ^<em>hash</em>^@
gitrevisions , чтобы сократить итерацию графа. Обратите внимание, что это действительно приводит ^
, который похож на --not
, но локальный вместо глобального, применяется к rev^@
.)