43

git status tells me that my branch and the one I started from on another repository have diverged:

# On branch master
# Your branch and 'origin/master' have diverged,
# and have 13 and 13 different commit(s) each, respectively.

but the commit history for each is identical. That is, git log shows the same commits, in the same order, with the same SHA-1 hashes. That's for the last 13 commits, and everything before that too.

What's going on?! Or have I misunderstood something fundamental - git's all new to me.

It's quite a long story how I got into this mess - git-svn, cygwin, EGit, pull --rebase with spurious conflicts - but I'm wondering if it's possible this "divergence without any differences" is due to newlines? I've opened files in notepad, and read lots about svn/git/cygwin and CRLF but without any revelations.

Edit OK. Most of the above isn't really the problem. Maybe I don't understand git log or something has got messed up somewhere...

I have two repositories. If I go to rep_A and run git log I get the same result (notably same SHA-1) as if I go to rep_B and run git log.

At rep_A, if I run git log origin/master I get the different commit history I expect. (Different SHA-1s, but same messages - how I created this mess is another story.)

git remote -v show assures me that the origin is where I expect it to be.

git log, on rep_B, isn't behaving how I expected. It's like it's giving me the commit history for rep_A. What have I missed?

Jon Stafford
  • 1,274
  • 1
  • 12
  • 16
  • 5
    How are you viewing the commit history for each one? Are you doing `git log master` and `git log origin/master` or something else? – Dan Moulding Feb 19 '10 at 18:32
  • Oh. I was doing `git log` from the root directory of each repository. I just ran your commands and the commits *are* different. Phew/Doh! Clearly I didn't understand what `git log` was doing. Sorry to have misled. Just need to figure out how to get rid of this question now... – Jon Stafford Feb 19 '10 at 18:48
  • 5
    don't get rid of the question, post an answer yourself and accept it. That will remove it from the "Unanswered" tab and show the answer clearly for future people with the same problem. And if your answer gets 3 upvotes, you get the Self-Learner badge :) – Philip Potter Feb 28 '10 at 10:17

1 Answers1

23

It looks like you also forgot to update remote repositories. So do git remote update in rep_A (it will probably warn it is not fast-forward update as you seem to do rebase on both ends) and then the histories should be identical.

Michal Čihař
  • 9,059
  • 3
  • 44
  • 82
  • Thanks! Yes - that was it. I'm still learning Git, and didn't understand about remote tracking branches. E.g. see http://www.gitready.com/beginner/2009/03/09/remote-tracking-branches.html – Jon Stafford Mar 11 '10 at 16:53