Найти все ветви, которые содержат изменения в FILENAME (даже если до (незаписанной) точки ветвления)
FILENAME="<filename>"
git log --all --format=%H $FILENAME | while read f; do git branch --contains $f; done | sort -u
Проверка вручную:
gitk --all --date-order -- $FILENAME
Найти все изменения вFILENAME не объединен с мастером:
git for-each-ref --format="%(refname:short)" refs/heads | grep -v master | while read br; do git cherry master $br | while read x h; do if [ "`git log -n 1 --format=%H $h -- $FILENAME`" = "$h" ]; then echo $br; fi; done; done | sort -u