У моего репозитория git есть три ветки, devel
, stable
и customers/acme_patches
. Давно, stable
был разветвлен от devel
, и все исправления ошибок имеют место в stable
. Время от времени stable
снова объединяется в devel
. customers/acme_patches
- это ветвь с несколькими клиентскими патчами. Филиал не был объединен ни с одним из devel
и stable
.
Немного искусства ASCII, чтобы проиллюстрировать сценарий:
o---o---o customers/acme_patches? / o---o---1---o---o---o stable / \ \ o---o---o---2---o---o---o---o devel \ o---o---o customers/acme_patches?
Теперь я задаюсь вопросом:
Какая ветвь была customers/acme_patches
разветвлена от - devel
или stable
? Я знаю только, что в прошлом он был раздвоен одним из них, но я не знаю, что. Например. он мог бы зафиксировать 1
или 2
на приведенной выше диаграмме.
Я играл с git log --oneline --graph
и gitk
, но поскольку customers/acme_patches
был разветвлен на несколько сотен комм. назад, трудно следовать за строками.
Может быть, быстрая команда (немного script тоже прекрасна), которая может каким-то образом выполнить коммиты в customers/acme_patches
назад, чтобы найти первый коммит с двумя дочерними элементами (точка fork), а затем определяет, было сделано в stable
или в devel
?
В лучшем случае я мог бы просто выполнить что-то вроде (извините приглашение, я на Windows):
C:\src> git fork-origin customers/acme_patches
stable