I do:
$ git commit .
$ git push
error: Entry 'file.php' not uptodate. Cannot merge.
Then I do
$ git pull
Already up-to-date.
What do I do? I just want to get the latest version from the remote copy, and overwrite anything on my local copy.
Edit: I tried everything. I deleted my local repo, and
$ git clone ssh://root@something.com/directory
...
Checking out files: 100%, done.
$ git status
On branch master
nothing to commit (working directory clean)
All looks good, right? Pull just in case.
$ git pull
Already up-to-date.
I make a one line change in a file to see if I can push it.
$ git commit .
[master 1e18af1] Rando change
1 files changed, 2 insertions(+), 0 deletions(-)
$ git push
Counting objects: 13, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (7/7), 646 bytes, done.
Total 7 (delta 3), reused 0 (delta 0)
From /directory
d6d61aa..1e18af1 master -> origin/master
error: Entry 'someotherfile.php' not uptodate. Cannot merge.
Updating b8f9a54..1e18af1
To ssh://root@something.com/directory
d6d61aa..1e18af1 master -> master
I have no idea what’s going on! How can I commit/pull again normally? Thanks very much!
This is just a hunch, but was your remote a bare repo or a working directory? If it was a working directory rather than a bare repo, the
file.phpfile on the remote had uncommitted changes. Yourgit pushcommand was trying to advance theHEADat the remote which was causing conflicts due to the uncommitted changes.This is why you usually
git pullto update a working directory, and usegit pushon bare repos. FYI, to setup a bare repo for use as something similar to a central CVS/SVN/etc repo, do the following on the remote:Then in your local repo:
Now you have a bare repo to push/pull into/from that contains your master branch. You can repeat the last three local steps with any additional local branches you want to put on the remote. Cloning is the same as before and you don’t need to use
git configas remotes are set automatically and remote merging refs are set when you use tracking branches.Hope that helps.