Moving files caused the .gitignore file to flag whole directories as 'ignorable', resulting in changes not being recorded and moved files getting 'lost'.