Is there a way to get a visual diff on two branches in SourceTree?

Does Sourcetree offer a way to visualize differences between git branches?

I'm looking for:

  • names of files that have changed
  • diffs between these files

Solution 1:

Use (OSX) or CTRL (Windows and Linux) and choose any two commits you like in log view. It does not matter what branch the commits belong to.

As a result you will see something like...

Displaying all changes between f03a18bf0370c62bb5fb5c6350589ad8def13aea and 4a4b176b852e7c8e83fffe94ea263042c59f0548

...down below.

Solution 2:

Another way to do this is to right-click on a branch and select the "Diff against current" context menu command (current refers to the branch you are currently working on). This will give you the diff between the head commits of the two branches.

Source: https://answers.atlassian.com/questions/167126/sourcetree-diff-against-current-behavior#

Screenshot (based on Sourcetree v1.9.5):

enter image description here

After choosing "Diff against Current" from the context menu, you should see a message to the effect of:

Displaying all changes between {commit_hash} and working copy

After choosing to "Diff against Current" you should see a list of files that have changed, beneath the message "Displaying all changes between {commit_hash} and working copy"

Solution 3:

You can also do this by ctrl + clicking the two branches commits you want to diff.

Solution 4:

You can also use an External Diff tool. For example I am using Beyond Compare. After you set it as an external diff tool in sourcetree, you select both files you want to compare using CTRL and after that you press CTRL+D. As a result, Beyond Compare will be launched with both files ready to be compared.