Потому что они уже были в индексе.
https://git-scm.com/docs/git-rm#git-rm---cachedgit rm --cached
позволяет убрать файлы из индекса, соответственно гитигнор на них подействует.
git rm -rf --cached ios/build
например.
Поясню.
-r - рекурсивно пройтись по заданому каталогу.
-f - чтоб не ругался ни на что.
Запись -rf дозволена соглашениями.
--cached - удаление только из индекса (не самих файлов).
ios/build - пусть к папке, в которой эту экзекуцию провести. (можно так же полный путь записать)
package-lock.json кстати оставь.