In short, your remote repository is no longer a bare one, and you pushing on the remote checkout branch.
See "How to publish a Git repository":
A bare repository is one without a checked out working copy of the code. It only contains the git database.
As a general rule you should never push into a repository that contains changes in the working copy.
To ensure this doesn't happen, we're making the server repository a bare repository - it has no working copy
From here:
Note that the target of a "push" is normally a bare repository (i.e., with no work tree of its own).
You can also push to a repository that has a checked-out working tree, but the working tree
will not be updated by the push.
This may lead to unexpected results if the branch you push to is the currently checked-out branch.
If a detached work tree is defined (which can for instance correspond to a web server's DocumentRoot), you need to :
Check, on your remote repository, the value of git config core.worktree
and git config core.bare