Не могу связать вот это
Затем создаю папку mocks и несколько файлов в ней (a.php, b.php) и затем
> git add .
> git commit -m "add mocks"
И вот это
При чем если в новой ветки новые файлы были в игноре, то именно они попадают в ветку от которой она была создан
Так они в игноре или вы их комитили ?
Если папка в игноре, то она появится в любом бранче, на то он и игнор, чтобы гит не следил за файлами, которые игнорируются, просто синхронизируйте гитигнор между бранчами, или если папка не специфична для проекта, занесите ее в глобальный гит игнор
А если вы добавили папку в коммит и закомитили (можно посмотреть в ченжлоге к комиту), то она должна пропасть как только вы переключитесь на исходный бранч