How to check for changes on remote (origin) Git repository

Question

What are the Git commands to do the following workflow?

Scenario

I cloned from a repository and did some commits of my own to my local repository. In the meantime, my colleagues made commits to the remote repository. Now, I want to:

  1. Check whether there are any new commits from other people on the remote repository, i.e. origin?

  2. Say there were three new commits on the remote repository since my last pull, I would like to diff the remote repository's commits, i.e. HEAD~3 with HEAD~2, HEAD~2 with HEAD~1 and HEAD~1 with HEAD.

  3. After knowing what changed remotely, I want to get the latest commits from the others.

My findings so far

For step 2: I know the caret notation HEAD^, HEAD^^ etc. and the tilde notation HEAD~2, HEAD~3, etc.

For step 3: That is, I guess, just a git pull.

Answer

You could git fetch origin to update the remote branch in your repository to point to the latest version. For a diff against the remote:

git diff origin/master

Yes, you can use caret notation as well.

If you want to accept the remote changes:

git merge origin/master

How do I list all remote branches in Git 1.7+?

Send a pull request on GitHub for only latest commit