How to see code changes after git pull?

Before pulling

You can review changes as @iblue says with a fetch and diff before merging:

$ git fetch
$ git diff master...origin/master

Note the triple period, which means diff against the shared parent and origin/master (commits marked x below):

SP---o---o [master]
  \
   x---x [origin/master]

Just after a pull

The very first line in the output of a pull looks like this:

$ git pull
Updating 37b431a..b2615b4
...

You can then simply do:

$ git diff 37b431a..b2615b4

Or whatever other command:

$ git log --name-status 37b431a..b2615b4

Later on

If it has been a while since you pulled, and you wish to know what changes were brought in by the last pull, you can look it up with:

$ git reflog | grep -A1 pull | head -2

which will show the hash after the pull followed by the hash before the pull:

b2615b4 HEAD@{0}: pull : Fast-forward
37b431a HEAD@{1}: checkout: moving from v6.1 to master

You can then do the same thing with these two hashes:

git diff 37b431a..b2615b4

You can compare the pulled contents with the sources of immediately previous commit by,

git diff branch_name@{1}

eg:

git diff master@{1}

For comparing with the sources n commits behind,

git diff branch_name@{n}

git log --name-status -2

Will show you the names of the files that changed for the last two commits.

git log -p -2

Will show you the changes themselves.

Before you pull,

git fetch
git log --name-status origin/master..

Will show you what commits you are about to retrieve, along with the names of the files.


Because git pull is just a shortcut for git fetch and git merge, you can run git fetch to fetch the branches from the origin and then show the differences before merging. Like this:

git fetch                      # Load changes from remote server
git diff master origin/master  # Show differences
git merge origin/master        # Merge remote changes with local changes

If you run on a different branch than master, you should of course change the branch names in the commands above.

Tags:

Git