In the case of App Engine, Heroku, Azure etc, that is all abstracted away from you - as is, in many cases, the concepts of binaries. You just package up and upload some code somehow, and their "mesh" decides where to deploy it and how to run it.
(I know Heroku gives you a little more control over this; with App Engine, you get a config file and a number of instances you can tweak, and that's about it in the general case.)
This is so far available for Python and PHP - not Java or Go.
App Engine creates new app instances when you deploy, so there's no need to care about deleted files, tracked/untracked files on the server, and so on.
Maybe the next project can be a tool to automate rebasing published history and force-pushing it to origin? People are always saying you shouldn't do that either.
I had a similar setup in place, now I can happily delete most of that code and configuration files.