I had also same symptoms but has been caused by different thing.
I was not able to:
git checkout app.js //did nothing
git rm app.js //did nothing
rm -rf app.js //did nothing
even on
git rm --cached app.js
it signs as deleted and in untracked files I could see app.js. But when I tried rm -rf app.js
and peform git status
again it still shows me the file in 'untracked'.
After couple of tries with colleague we found out, that it has been caused by Grunt!
As the Grunt
has been turned on, and because app.js has been generated from couple of other js files we found out that after each operation with js files (also this app.js) grunt recreate app.js again.