Вот вы накалякали PR, пришла стадия рефакторинга — стоит пройтись по всем мелким замечаниям и поправить их. Но по умолчанию в какой-нибудь Intellij будут показываться все TODO, а не только ваши. Конечно, ваша кодовая база хорошая, и их будет не очень много, да? Падме.жпг В итоге надо как-то отфильтровать только то, что относится к вашей ветке.

Теоретически эту проблему могут решить области поиска, однако динамические области в IntelliJ пока не поддерживаются. Есть плагин, который вроде работает, но подписка стоит аж 1 доллар в месяц — непозволительные расходы!

Попробуем сделать это через консоль. Читать документацию git — сомнительная затея: как и пользовательский интерфейс git, она тоже любит “тщательно выбирать друзей”. Нам нужны все изменения в ветке:

git diff --merge-base master

Эта команда выдаст патч на все закоммиченное и добавленное в git. Но есть еще и недобавленные файлы:

git ls-files --others --exclude-standard

Объединяем это все через cat и grep’аем. Ну и чтобы не запоминать колбасу, добавляем функцию в ``~/.bash_aliases` (или где вы там храните своё):

function branch_todo(){
  cat <(git ls-files --others --exclude-standard -z | xargs -0 cat) \
      <(git diff --merge-base master) \
  | grep -i -E 'TODO|FIXME|FIMXE'
}