Overview

SourceTree is a desktop client for Git and Mercurial distributed version control systems, developed by Atlassian, the company behind Jira and Bitbucket. Launched in 2008 and acquired by Atlassian in 2011, SourceTree provides a graphical user interface (GUI) to simplify common and complex version control tasks (SourceTree overview). It is available for both macOS and Windows operating systems. The tool targets developers, teams, and project managers who prefer a visual approach to managing their code repositories over command-line interfaces.

SourceTree's primary strength lies in its ability to visualize repository history, branches, and merges through interactive graphs. This visual representation can aid in understanding the flow of development, identifying changes, and resolving conflicts. Users can perform actions such as committing changes, creating and switching branches, merging branches, rebasing, and stashing directly from the GUI, often with drag-and-drop functionality. For developers working with multiple repositories or complex branching strategies, SourceTree offers a centralized view and management capabilities.

While SourceTree aims to simplify Git operations, its interface, particularly for new users, can sometimes appear feature-dense. However, its integration with other Atlassian products like Bitbucket and Jira can streamline workflows for teams already within the Atlassian ecosystem. For instance, users can manage pull requests in Bitbucket directly from SourceTree or associate commits with Jira issues. Atlassian maintains SourceTree as a fully featured free product, distinct from its commercial offerings, making it accessible for individual developers and teams regardless of budget.

The application supports both local and remote repositories, allowing users to clone, pull, and push changes to services like GitHub, GitLab, and Bitbucket. Its capabilities extend to managing submodules, interactive rebase, and Git Flow, a branching model designed to streamline release management (Atlassian GitFlow workflow tutorial). SourceTree is positioned as a tool that reduces the learning curve for Git, enabling developers to focus on coding rather than memorizing command-line syntax.

Key features

  • Visual Git and Mercurial Representation: Provides a graphical interface to view repository history, branches, and merges, helping users understand the state of their codebase.
  • Streamlined Git Operations: Supports common Git commands like commit, push, pull, branch, merge, rebase, and stash through intuitive UI actions, including drag-and-drop.
  • Integrated Search and Filter: Allows users to search through commit history, filter by author, file, or message, and quickly locate specific changes.
  • Remote Repository Management: Connects to and manages repositories hosted on platforms like Bitbucket, GitHub, GitLab, and custom Git servers.
  • Git Flow Support: Built-in support for the Git Flow branching model, simplifying the creation and management of feature, release, and hotfix branches.
  • Interactive Rebase: Offers a visual way to perform interactive rebase operations, allowing users to squash, reorder, or edit commits before pushing.
  • Submodule Support: Enables management of Git submodules directly within the SourceTree interface.
  • Large File Support (LFS): Integrates with Git LFS for managing large binary files in repositories.
  • Atlassian Integration: Seamlessly integrates with Atlassian's Bitbucket for repository hosting and Jira for issue tracking, enhancing team workflows.
  • Custom Actions: Allows users to configure custom Git commands and external scripts to be executed directly from the SourceTree interface.

Pricing

SourceTree is offered as a fully featured free tool for both personal and commercial use.

Plan Cost Details As of Date
SourceTree Free Full functionality for Git and Mercurial, no feature limitations. 2026-05-08

For more details, refer to the SourceTree official overview.

Common integrations

  • Bitbucket: Direct integration for cloning, pushing, pulling, and managing pull requests on Bitbucket repositories (Using SourceTree with Bitbucket Cloud).
  • Jira: Associate commits with Jira issues, link branches to issues, and track development progress directly from SourceTree (Jira Bitbucket SourceTree integration guide).
  • GitHub: Connect to GitHub repositories for cloning, pushing, and pulling code.
  • GitLab: Supports interaction with GitLab repositories for common Git operations.
  • Confluence: While not a direct runtime integration, teams using Confluence can embed Bitbucket links and Jira issue reports, indirectly connecting to SourceTree workflows.
  • Other Git Hosting Services: Compatible with any standard Git or Mercurial remote repository.

Alternatives

  • GitKraken: A cross-platform Git client known for its visually distinct interface and advanced features like Git Flow integration and an interactive rebase tool.
  • GitHub Desktop: A free, open-source Git client developed by GitHub, designed for simplicity and optimized for workflows involving GitHub repositories.
  • SmartGit: A commercial Git client that supports Git, Mercurial, and Subversion, offering a comprehensive feature set for professional developers.

Getting started

To get started with SourceTree, download and install the application for your operating system. After installation, you can either clone an existing repository or create a new local one. The following example demonstrates how to clone a repository and make your first commit using the SourceTree GUI. This example assumes you have a remote repository URL.

# 1. Download and install SourceTree from their official website.
#    (https://www.sourcetreeapp.com/)

# 2. Open SourceTree.

# 3. Clone a repository:
#    - Click the 'Clone / New' button or 'File > Clone/New'.
#    - Enter the 'Source Path / URL' of your remote repository (e.g., https://github.com/your-username/your-repo.git).
#    - Choose a 'Destination Path' on your local machine.
#    - Click 'Clone'.

# 4. Make changes and commit:
#    - Once cloned, open a file in the local repository directory using your preferred code editor.
#    - Make some changes (e.g., add a line to a README.md file).
#    - Save the file.

# 5. Stage and commit in SourceTree:
#    - Return to SourceTree. You will see 'Uncommitted changes' listed.
#    - In the 'File Status' view, select the modified file(s).
#    - Click the 'Stage Selected' button to move them to the Staging Area.
#    - Enter a 'Commit message' in the text field at the bottom (e.g., "Initial commit: Added a greeting").
#    - Click the 'Commit' button.

# 6. Push changes (optional, if you want to update the remote repository):
#    - Click the 'Push' button in the toolbar.
#    - Select the branch you want to push (e.g., 'main' or 'master').
#    - Click 'Push' to send your committed changes to the remote repository.

This process outlines the basic steps for cloning a repository, modifying files, staging changes, committing, and optionally pushing them to a remote server, all through SourceTree's graphical interface.