git fetch doesn't update my local repository

Rodrigo picture Rodrigo · Mar 23, 2012 · Viewed 65.9k times · Source

What I want:

Update all news commits from server with my local repository in all branch but do not merge any branch (just join the history lines).

I am trying this command

git fetch --force --progress --verbose  name@host:/path/to/repository.git 

I thought it will work fine, because it show:

From host:/path/to/repository
  * branch            HEAD       -> FETCH_HEAD

But, what means this output? If I see the log, it wasn't update. If I do a clone from server, all new commits are there. So... The command not work. Then I try with a branch that exist in server but not in my local repository

git fetch --force --progress --verbose  name@host:/path/to/repository.git my_branch

The result is:

From host:/path/to/repository
  * branch            my_branch       -> FETCH_HEAD

And any success... Even if I not know all branches and my branch was update, I want to fetch this changes and can see in my log.

Any idea to do it work?

Answer

George Skoptsov picture George Skoptsov · Mar 23, 2012

When you fetch you get the remote branches, but you still need to merge the changes from the remote branch into your local branch to see those changes.

After fetching, try this:

git log origin/yourbranchname | head
git log yourbranchname | head

Do you see the difference?

Now do:

git checkout origin/yourbranchname -b newbranchname
git log newbranchname

You should see remote changes in the newbranchname.

You can also merge those changes into your branch with

git checkout yourbranchname
git merge origin/yourbranchname