Mobile Development

SourceTree for Mac

SourceTree is a Git client created by Altassian. They describe their product as, "(P)erfect for newcomers." Where "(c)reate, clone, commit, push, pull, merge, and more are all just a click away."

Download from

Window Layout

Below is a brief overview of SourceTree, its various controls and layout. This material is found within SourceTree itself by selecting Help from the file menu.

The Toolbar

The View Button This button allows you to switch between the 3 main views of the repository: File Status, Log, and Search.


Opens the Commit dialog so you can commit your changes. In Git, if you're using staging, the default is to open the dialog with the commit of staged changes selected.


Allows you to switch your local working copy to a different point in history.


Use this to undo changes in your working copy.


Moves any uncommitted changes you have in your working copy to a storage area, and returns your working copy to a clean state.


Adds any selected untracked files to source control - the next commit will start to track these files.


Stops tracking selected files and removes them from the working copy. The next commit will remove these files from being tracked in source control.


A shortcut to stop tracking all files which are missing from the working folder, and to add any untracked files to source control.


Download new commits from your remotes, but don't bring them in to your own branch yet.


Download new commits from your remotes and bring them in to your current branch, either by merging or rebasing.


Upload new commits to a remote. This icon will have a number superimposed on it if you have commits which you haven't pushed yet.


Create a new branch (also includes a tab for removing branches)


Merge changes into your current branch.


Create and manage tags.

Create Patch

Create a patch file either from your current uncommitted changes, or from one or more commits that you've already made.

Apply Patch

Apply a patch file either to your working copy or directly to the commit log.


Open a Terminal at the selected location.


Access per-repository settings such as remotes.

The Sidebar

The sidebar is found on the left-hand side of the SourceTree application.

The File Status Section

Selecting the "Working Copy" item behaves the same way as if you click on the File Status button on the View control on the toolbar.

The Branches section

This displays all your local branches. You can also right-click on the branch to get a number of context-sensitive options such as updating to/checking out the branch, merging it into your current branch, diffing that branch against your current branch. Double-clicking a branch will switch your current branch (after a confirmation dialog).

Your current branch is indicated with bold text and a 'tick badge' on the branch icon. The number of commits that your branch is ahead or behind the remote branch that it's tracking is displayed alongside the name, with an up arrow for ahead, and a down arrow for behind.

Note: if you create a branch with a name which includes a '/' character, SourceTree will display the branch as nested within a folder.

The Tags section

This section is not expanded by default but if you expand it you'll see one entry for each tag. Selecting one will jump to that tag in the Log view, and there are options available in the context menu such as updating to the tag, deleting the tag or diffing your current working copy against it.

The Remotes section This is where you find a list of remotes configured for this repository. You can pull from or push to a specific remote from the context menu on each item.

On Git, you will also find a list of remote branches, and you can perform actions on these via the right-click context menu or double-clicking to checkout.

The Stashes

A new item is created in this section, each one representing a set of changes that have been stored away for future use. You can click on these items to see a diff view of the changes they represent, and right-click an item to either apply it back to your working copy, or to delete it if you don't want it anymore.

The Submodules

If your project has nested repositories within it, called submodules. They will appear here. See the submodules section for more details.

Found at the bottom of SourceTree window is the footer.

You'll see here the name of the current branch, followed by either a 'Clean' marker if there are no local changes, or a summary of the number of files outstanding in each state if there are local changes. You will also see information here relating to any outstanding merges and conflicts.

File Status List

On the left-side of the SourceTree window, after the sidebar, is the File Status list.

This area shows files in your working copy which have been modified in some way, although you can use the checkboxes at the bottom to filter the statuses that are displayed. Selecting one of these files will display those changes in the differences pane.

Differences Pane

Colorful green/pink view on the right side of the SourceTree application. This is a color-coded view with green describing additions, pink describing deletions and white describing no changes.

[Video] Git + SourceTree Tutorial

The following video provides an introduction to Git using SourceTree:


SourceTree Resources

FAQ from SourceTree -

Support for SourceTree -

BitBucket? It is important to note that there are competitors to GitHub. Altassian is one of those competitors. In addition to this Mac app, they also make a web interface called BitBucket, which is Altassian's answer to GitHub.