I have a remote git repository and a local one that i work with. Whenever i do any changes locally, i push them to the remote. Then i sometime do a \"git commit\" on the rem
What you should be doing is creating the remote repository as a bare repository. A bare repository is just the git repo, without a current checkout (that is, it is like just the contents of the .git
dir in a regular Git repo, so it contains objects and refs, but it doesn't have an index or working copy of the file hierarchy). If you try pushing to a non-bare repository, the working copy will get out of sync with what is committed, and cause the kinds of problems you are seeing here.
You can create a bare repository using git init --bare repo.git
. Or you can clone an existing repository as a bare repo using git clone --bare original-repo new-repo.git
.
If you want to have a checked out copy of the repository on your server, you will need to create a new, non-bare repo on the server, and then pull into that repo from the bare repo that you push to.