craft/app: gitignore, or no?
No. Keep craft/app in your repo.


  Disclaimer: This is my own personal opinion. The topic comes up with some frequency on Craft Slack, and you will find advocates of both approaches. I fully expect to see an opposing position posted by someone else.


Benefits to keeping app in your repo...


You can properly vet an update, and make sure it does not create any problems in your site before pushing that update to production.
You have a guarantee that every environment (dev, staging, production) all contain the exact same version of Craft. This means that you can take advantage of specific features with confidence, and similarly, rule out bugs which may have been fixed between Craft versions.
You can prevent your client from "accidentally" upgrading, and potentially making a mess. Though it is rare, some breaking changes (or new bugs) are occasionally introduced when updating.