Я не думаю, что такая функциональность существует в git "из коробки".
Идея о том, что что-то подобное возможно, похоже, основана на немного неточном понимании концепции git branch.
Технически, в git (в отличие от некоторых других VCS) ветвь является просто указателем на коммит. Концепция ветвления не включает в себя историю, в которой фиксируется указатель ветки, на который ранее указывалось. (Может быть, не совсем верно ... Существует журнал ветвлений, но он включает только события ветвей, которые произошли локально, поэтому его невозможно использовать для чего-то подобного)
Если у меня естьИстория коммитов выглядит следующим образом:
* 59817c7 - (HEAD -> master) merge commit
|\
| * 4e5cf26 - commit b
* | dd09b38 - commit a
|/
* e27e6cc - base commit
Вы не можете сказать, был ли commit a
или commit b
сделан в основной ветви, а другой - в боковой ветви. (Если вы не читаете информацию из сообщений о фиксации слияния по умолчанию). Оба коммита равны. Оба являются частью истории основной ветви, поскольку история основной ветви включает в себя все коммиты, достижимые из коммита, на который указывает основная ветвь.
Концепция ветви, как нам нравится думать об этом в разговорной речи(т. е. один из родителей коммита слияния "является" главной ветвью, а другой "является" ветвью возможностей) определяется вашим рабочим процессом, но технически он не встроен в информационную модель git.