Read Anthropic’s case study about Graphite Reviewer

Best Git clients for managing pull requests

Sara Verdi
Sara Verdi
Graphite software engineer
Try Graphite


Note

This guide explains this concept in vanilla Git. For Graphite documentation, see our CLI docs.


When working on complex software projects, one of the key steps in the development lifecycle is merging code from feature branches into the main branch. This is typically facilitated by what we call a "pull request" (a feature branch change proposal that’s reviewed and merged into the main branch upon approval). While the Git command line interface (CLI) is powerful and flexible, graphical Git clients and integrated development environments (IDEs) often make it easier to visualize changes, manage branches, and ensure that pull requests (PRs) are handled smoothly. In this guide, we’ll take a look into how pull requests work, what to consider when choosing a Git client, and a round-up of some of the best Git clients currently available.

A pull request allows developers to propose changes from a feature branch into another branch, typically the main branch. When you open a pull request, the Git hosting service (like GitHub, GitLab, or Bitbucket) creates a reference between the feature branch’s commit history and the target branch.

Under the hood, Git works with commits (snapshots of changes) and references (pointers to commits). The main branch is essentially a pointer to a specific commit. Your feature branch is another pointer starting from a past commit and leading to a series of new commits that contain your changes. Creating a PR doesn’t immediately merge the code; instead, it’s a request for the repository’s maintainers to pull those changes in. A PR often involves reviewing code, discussing possible modifications, adding more commits, and ultimately merging (fast-forward or creating a merge commit) once everyone is satisfied.

When choosing a Git client to help you manage PRs, consider these factors:

  • Branch visualization: Being able to easily see branches and their relationships can help prevent merge conflicts.
  • Built-in conflict resolution tools: Handling file conflicts (instances where changes in two different commits overlap) is smoother when the client provides an interface to resolve these differences.
  • Pull request integration: Direct integration with platforms like GitHub can let you create, review, and merge PRs without leaving the client.
  • Code review tools: Inline commenting, syntax highlighting, and side-by-side diffs help developers review code more thoroughly.
  • Extensibility: Some clients support plugins or integrations, allowing you to connect your workflow tools (like continuous integration services) directly into your PR process.

GitHub Desktop is a free, cross-platform client developed by GitHub. It provides a streamlined graphical interface for working with repositories hosted on GitHub. Its tight integration with GitHub means you can easily:

  • Create and check out branches
  • View changes and commits
  • Open and merge pull requests directly from the app

By simplifying these tasks, GitHub Desktop reduces the barrier to entry for new contributors and makes common PR tasks more intuitive.

GitKraken is a popular Git client known for its visually appealing interface and robust feature set. It integrates with many platforms, including GitHub, GitLab, and Bitbucket, making PR management easier across various ecosystems.

GitKraken’s visual graph shows branch relationships and commit histories. When you open a PR, you can view associated issues, comments, and continuous integration results. Its built-in merge conflict editor helps you resolve conflicts quickly. The integration with GitHub Actions (continuous integration pipelines associated with GitHub) and GitHub pull request features streamlines moving from code changes to merged PRs in fewer steps.

SourceTree, developed by Atlassian (the company behind Bitbucket and Jira), is a graphical client that connects seamlessly to Bitbucket, GitHub, and other remote repositories. With SourceTree, you can:

  • See a detailed log of commits and branches
  • Stage and commit changes with a few clicks
  • Open pull requests on Bitbucket or GitHub directly from the interface

SourceTree’s branching model and integrated diff and merge tools make it easier to handle multiple PRs and keep track of their progress.

Fork is a lightweight, fast Git client with a focus on user experience. It supports GitHub, GitLab, and other Git-based services. With Fork, you get:

  • A clean interface with a contextual toolbar
  • A fast history navigation and search tool
  • Easy branch management and pull request initiation

Fork’s quick actions and intuitive interface make it popular among developers who want a streamlined approach without sacrificing essential features.

The Graphite CLI is a command-line tool that focuses on streamlining the entire pull request workflow. Instead of needing to juggle multiple branches and commands, Graphite CLI helps you structure your changes into a stack of smaller, easily reviewable pull requests.

Under the hood, Graphite CLI manages your branches as if they were a series of stacked commits, making it easier to track dependencies between pull requests. When you use it, you can run commands like gt stack submit to open multiple pull requests at once. With the Graphite CLI, you get:

  • a simplified workflow for stacked pull requests, where each PR builds on top of the one before it
  • a straightforward command structure that abstracts away some of the manual Git branching and rebasing complexity
  • integrated tooling for quickly syncing your stack with the remote, updating PRs, and ensuring your changes land in the correct order

Graphite CLI’s approach is especially helpful for larger projects where it’s common to break features down into multiple small PRs. By providing a structured workflow and commands that mirror what’s happening in Git (like creating branches, pushing commits, and opening PRs), Graphite CLI helps teams iterate faster and keep their code reviews more manageable.

Many popular integrated development environments like JetBrains’ IntelliJ IDEA, WebStorm, and PyCharm come with built-in Git support and direct integration with GitHub. You can:

  • create and merge pull requests without leaving the editor
  • use inline diff tools to review changes and spot potential issues
  • run automated tests and linters before merging

This integrated approach keeps you focused on the code, allowing you to initiate a PR after making changes, then handle reviews, comments, and merges within the same environment.

Choosing the right Git client depends on your team’s specific needs and workflow preferences. Whether you prioritize a graphical interface, integration with other tools, or innovative features like PR stacking, there's a Git client out there that can help streamline your development process. For those looking to enhance their PR management through stacking, the Graphite CLI offers a compelling solution that integrates well with existing Git workflows, ensuring faster, more organized code reviews.

Built for the world's fastest engineering teams, now available for everyone