简体   繁体   中英

How to see code changes after git pull?

I would like to inspect any code changes after doing a git pull . Currently it's just showing me which files changes. How can I see what code changed?

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.

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

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.

你可以通过这个来检查推拉的内容是什么......

git log --stat

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}

Best way to compare status before and after a pull (after the pull has been done):

git diff master^1

Or more generically:

git diff <branch name>^<commits back>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM