Есть ли способ фильтрации по ветви источника непосредственно из командной строки?
Нет. Ветви в Git - это просто ярлыки. Слияния не помнят, с какой ветки они были объединены, ни с какой, они помнят только свои родительские коммиты и фиксируют сообщения. После объединения обе истории в равной степени становятся частью ветви.
Это оба разных представления одного и того же хранилища.
< C <-- D <---- I [develop]
/ \ /
A < B < E < F < G < H [master]
<------ I [develop]
/ /
A < B < C < D < G < H [master]
\ /
E <--- F
Все коммиты, кроме I, являются частью ветви master
(т.е. . они могут быть достигнуты из H). Все коммиты являются частью ветви develop
(т. Е. К ним можно обратиться из I). Был ли G слиянием с develop
или с не связанной ветки? Топологически невозможно определить.
Лучшее, что вы можете сделать, - это попытаться получить информацию из сообщения и истории коммита слияния. Если ваши сообщения фиксации слияния непротиворечивы, вам, возможно, удастся сойти с рук что-то подобное, но оно хрупкое.
git log --oneline --merges <destination> | grep "Merge branch '<source>'"