Question: There is something I don't understand with the `git pull` command.
I have a `foobar` Git repository with two files, named `f1` and `f2`.
First, I clone this repo using this command: 

```
git clone git@mycompany:foobar/foobar.git 

```

I make some wrong modifications to both the `f1` and `f2` files, add them to Git index and commit then.

```
git add -A
git commit -m 'a test wrong modification'

```

I decide now that this modifications were wrong and I want to replace my files with the remote version. So I use `git pull` to do this.

```
git pull

```

```
Already up-to-date.

```

Git answers that project is already up to date. What's wrong with what I'm doing? How should I proceed to replace my local version with the remote version?

Answer: 
```
git fetch origin
git reset --hard origin/master

```

Here is the good explanation about git pull [git pull](http://www.atlassian.com/git/tutorial/remote-repositories#!pull)

The `git fetch` command imports commits from a remote repository into your local repo. The resulting commits are stored as remote branches instead of the normal local branches that we’ve been working with. This gives you a chance to review changes before integrating them into your copy of the project.

Command `git pull <remote>` fetches the specified remote’s copy of the current branch and immediately merge it into the local copy. This is the same as `git fetch <remote>` followed by `git merge origin/<current-branch>`. Since it is doing merge your commits were still there.

After doing `fetch` you can reset your working copy with reset command. `Hard` is to ignore any changes in your local copy. `git reset --hard origin/master`
Pulling is mainly to merge your remote repository with your local one. Short answer is nothing is wrong with your git setup as your latest remote changes are already there in your local repository. If someone else push changes to the remote repository that is when pull comes handy. Those changes get pulled and merged into your local repository after you do the pull.