Skip to content
GitTree

GitTree · See the big picture. Own every change.

The visual Git GUI that brings clarity to every branch.

A visual Git client for macOS, Windows and Linux: stage line by line, see every branch in one graph and resolve conflicts side by side. Pro adds pull requests, CI/CD runs and Nour, your AI assistant.

  • Your code stays on your machine
  • Usage data explained
  • English and Arabic

Rated 5.0 out of 5 by 250+ GitTree users in the app

GitTree is trusted by teams at

  • NBA
  • NTT DATA
  • New York University
  • stc
  • Investec
  • Brown & Brown
  • Peraton
  • Northeastern University
  • German Cancer Research Center (DKFZ)
  • KOMPAN
  • Almosafer
  • Dsquares
  • Techvify
  • Periferia IT Group
  • bee2link group
  • NORBIT
  • Kaopiz
  • blue News
  • Loyola University Chicago
  • Carleton University
  • Hitotsubashi University
  • Universität Kassel
  • ÉTS Montréal
  • Cairo University · Engineering
  • Nanoveu
  • Jo Academy
  • Marn
  • praxipal
  • Protocol Safe
  • Al Rahala
  • Qotoon
  • Medico EDV
  • Shabek

Beyond commit and push

The hard parts of Git, made visible

Rewrite history and take it back. Run branches side by side. Follow a push to production. Let a coding agent work with a snapshot behind every turn.

Every Git feature is on the Free plan, with no account needed. Your code stays on your computer.

feat(history):01 / 04

Rewrite Git history, and take it back

Rebase, squash and reset change history for good on the command line. In GitTree each one shows its plan first and leaves a snapshot behind.

  • Free

Interactive rebase with the plan in front of you

GitTree demo: interactive rebase, then What Changed compares the branch before and after

Two messy commits folded away, then every old commit matched with its new one.

What this demo shows

A product demo without sound. The interactive rebase editor lists the commits of feature/export. The fixup commit is set to Fixup and the wip commit to Squash, and the editor shows the combined message. Start Rebase rewrites the branch with fewer commits. What Changed opens from the rebase notice and pairs each old commit with its new one: two the same, three dropped and one added.

Reorder commits by dragging, then squash, fix up, reword or drop them. GitTree shows what will be replayed before anything changes. Afterwards, What Changed compares the branch before and after the rewrite, commit by commit, so you can prove a rebase changed nothing it should not have.

  • Pick, reword, edit, squash, fixup and drop, by mouse or keyboard
  • Squash a selection, a commit into its parent or a whole branch from one dialog
  • What Changed pairs old and new commits and marks each the same, changed, added or dropped

How it works

  1. Set Fixup and Squash in the editor
  2. Start the rebase
  3. Open What Changed to compare before and after
  • AltSSquash Commits…
  • AltDWhat Changed…
  • git rebase -i
  • git range-diff
  • Free

Undo a hard reset. Find the commit you thought was gone.

GitTree demo: a hard reset undone, then a deleted branch recovered with Lost & Found

A hard reset undone in one click, and a deleted branch brought back from Lost & Found.

What this demo shows

A product demo without sound. main is reset hard to an older commit from the commit menu, and its two newest commits leave the graph. Undo in the toolbar brings them back exactly. The unmerged branch feature/draft is then deleted. Lost & Found opens, finds its last commit among GitTree's recovery references, shows its message and files, and Create recovery branch keeps it as recovered/draft, which appears in the graph.

Before a reset, rebase, squash, discard or branch delete, GitTree saves the previous state as a hidden snapshot, so Undo in the toolbar puts it back. When work is lost another way, Lost & Found searches the reflog and those snapshots for commits no branch points to, shows what is in each, and keeps the one you choose on a new branch.

  • Undo and redo for commit, amend, checkout, reset, rebase, discard and deleted branches or tags
  • Lost & Found previews a commit's message and files before you restore it
  • Recovery creates a new branch; your checkout and other branches stay as they are

How it works

  1. Reset a branch by mistake, press Undo
  2. Open Lost & Found and pick a result
  3. Create recovery branch
  • CtrlZUndo
  • AltShiftDLost & Found
  • git reflog
  • git fsck --unreachable
  • Free

Know a merge will conflict before you start it

GitTree demo: a merge that is predicted to conflict, resolved line by line in the three-way editor

The merge dialog warns of the conflict; the three-way editor settles it line by line.

What this demo shows

A product demo without sound. Merging fix/config-defaults into main shows a warning that the merge will stop with a conflict in src/config.ts. The three-way editor shows the current side, the incoming side and the output. The notes folder line is taken from the current side and the theme line from the incoming side, the file is saved and marked resolved, and Continue creates the merge commit.

The merge dialog names both branches and says whether the merge will stop with a conflict, and in which files. A marker beside a branch warns when it would conflict with main. When a conflict does happen, the three-way editor shows your side, the incoming side and the result, and you take whole conflicts or single lines.

  • Conflict prediction before merge, worked out locally
  • A hint when other unmerged branches change the same files
  • Take a side, both, or single lines, then mark the file resolved and continue

How it works

  1. Read the warning in the merge dialog
  2. Pick lines in the three-way editor
  3. Save, mark resolved, Continue
  • git merge-tree
  • git mergetool

Safe by design

  • Undo and redo

    Reset, discard, delete and rebase can be reversed from the toolbar.

  • Snapshots first

    Destructive actions save a recoverable copy before they run.

  • Safer force-push

    Force-push uses --force-with-lease, so it never overwrites work you haven’t seen.

  • Cancel by default

    Dangerous dialogs focus Cancel and say exactly what will happen.

feat(worktrees):02 / 04

Git worktrees and stacked pull requests, without the bookkeeping

Several branches in progress, several checkouts, perhaps an agent in each. GitTree keeps track of where each one stands.

  • Free

Every checkout as a card you can resume

GitTree demo: worktree cards, the Attention list and a worktree removed after its preview

Three checkouts as cards, one list of what needs attention, one finished checkout safely removed.

What this demo shows

A product demo without sound. Workspaces Overview shows the three checkouts of the lumen repository as cards: main, feature/export with a new file, and fix/sync, clean and pushed. The Attention tab lists the unfinished changes in feature/export, and the item is hidden for an hour. Back on the cards, the cleanup preview for fix/sync shows no changed files and no unpublished commits; Remove reviewed checkout removes the folder, and the branch fix/sync stays.

Worktree cards show every checkout of your saved repositories with its branch, its changes and where you left off. Resume reopens the file and the Nour chat you had open. Attention is one list of what needs you across all of them: failing pipelines, approvals, waiting Nour chats and unpublished work, read on this computer only.

  • One card per worktree, grouped by repository, with a status and a next step
  • Attention: snooze or hide an item until it changes
  • Worktree cleanup previews what removing a checkout would lose before it removes anything

How it works

  1. Open Workspaces › Overview
  2. Hide an item in the Attention list
  3. Remove a finished checkout after its preview
  • AltShiftWReview worktree cleanup…
  • git worktree

Pipeline and approval items in Attention come with GitTree Pro.

  • Free
  • New

Stacked pull requests you can see

GitTree demo: splitting a branch into a stack, restacking it and submitting the merge requests

Six commits become a stack of three branches, restacked in one rebase and submitted as three merge requests.

What this demo shows

A product demo without sound; typing and waiting are sped up where the picture says so. Six commits on feature/import are selected, and Split into Stack groups them into three branches, import/parser, import/validation and import/ui, without rewriting a commit. The STACKS section shows the ladder. import/parser is checked out from the ladder, a change is staged and its last commit is amended. Restack rebuilds the two branches above it in one rebase. Submit Stack pushes the three branches to a self-managed GitLab server and creates three merge requests, each targeting the branch below it, and the ladder shows their numbers.

A stack is a set of branches that build on each other, each with its own small pull request. GitTree shows the stack as a ladder, splits a long branch into one without rewriting a commit, and restacks every branch above a change in one rebase that a single Undo reverses. Submit Stack pushes each branch and creates or updates its pull request on the branch below.

  • Split into Stack groups commits into branches without rewriting one; or start a stack from any branch
  • The ladder shows each branch's own commits, its state and its pull request: draft, approved or changes requested
  • Restack every branch above a change in one rebase, then submit to GitHub, GitLab, Azure DevOps or Bitbucket

How it works

  1. Select commits, Split into Stack
  2. Amend the bottom branch, Restack
  3. Submit Stack
  • AltKShow Stack
  • AltShiftYSplit into Stack…
  • AltURestack…
  • AltShiftCSubmit Stack…
  • git rebase --update-refs

Stacks work locally on every plan. Submitting a stack to your provider comes with GitTree Pro.

feat(ci):03 / 04

CI/CD in your Git client, from the push to production

See what a push will ship before it leaves, follow the run it starts, and know which commit each environment runs. GitHub Actions, GitLab CI/CD, Azure Pipelines and Bitbucket Pipelines, each under its own name.

  • Free

See what a push ships before it leaves your computer

GitTree demo: Ship Preview before a push, and a warning about a token in a staged file

What the push will send, and a token caught before it is committed.

What this demo shows

A product demo without sound. Two commits wait to be pushed. Ship Preview lists both, the two files they change and the pipeline the push will start. A new commit is attempted with a staged configuration file that holds an obviously fake GitHub token: GitTree warns before committing and names the file and line, with the token masked. Unstage File takes it out, the commit is made without it, and Push sends it to origin.

Ship Preview opens from the Push button and lists the commits, the files and the pipelines this push will start. Before a commit or a push, GitTree also warns about likely passwords, tokens and private keys in what you are about to share. You review, unstage, ignore or continue. The check runs on your computer.

  • Commits, changed files and the workflows they trigger, in one preview
  • Secret warnings on commit and on push, switchable in Preferences
  • Force push always uses --force-with-lease with the expected commit

How it works

  1. Open Ship Preview from the Push caret
  2. Review the secret warning and unstage the file
  3. Push
  • AltShiftUShip Preview…
  • git push --force-with-lease
  • GitTree Pro

Follow, re-run and approve pipelines without opening a browser

GitTree demo: a GitLab CI/CD run with a failed job re-run and a manual production job started

A failed job found in its log and re-run until it passes, then the waiting production job started.

What this demo shows

A product demo without sound; waiting time is sped up where the picture says so. A commit is pushed to a self-managed GitLab server and GitTree lists the run it starts. The unit-tests job fails; its log from the runner is searched for the AssertionError and shows the failing test. Re-run Failed Jobs runs the job again and it passes, the later stages follow, and the manual deploy-production job waits. Play Job starts it, and the run finishes green.

GitTree lists the runs of your branch, every stage and job, and follows a job’s log while it runs. Search the log, jump from one error to the next, re-run only the failed jobs, start a workflow on the branch you choose, and approve a deployment that waits for you. To test before pushing, Prepare local pipeline builds the act or gitlab-ci-local command for a job and types it into a terminal for you to run.

  • Live job logs with search and error-to-error navigation
  • Re-run all or only failed jobs, cancel, dispatch a workflow, approve or reject a deployment
  • Run GitHub Actions or GitLab CI jobs locally with act or gitlab-ci-local

How it works

  1. Open the failed run and search its job log
  2. Re-run the failed job
  3. Start the waiting production job
  • AltPShow CI/CD
  • AltShiftLPrepare local pipeline…

CI/CD runs come with GitTree Pro, together with pull requests and the other provider integrations. The depth differs by provider. This demo was recorded against a self-managed GitLab server.

  • GitTree Pro
  • New

Which commit is in production, on the graph

GitTree demo: the Environments bar shows which commit production runs and what changed since the last good deployment

Production runs three commits behind staging; its detail names the last good deployment and what changed since.

What this demo shows

A product demo without sound. The graph header shows two environments read from a self-managed GitLab server: staging up to date on the newest commit, production three commits behind. Clicking production selects its live commit in the graph. Its detail lists the live deployment, the last known good one and the three commits between them, flags that a migration was added, and shows in its history that the newest production deployment failed. The migration commit is then opened in the graph.

The Environments bar in the graph header shows what each environment runs: the commit, how far it is behind your branch, and its state. Click a pill to see the live commit in the graph. When an environment breaks, its detail names the last deployment that worked and lists the commits between it and the one running now, and GitTree can find the commit that built a container image.

  • A pill per environment with its commit and state, read from your provider
  • What changed since the last good deployment, as a commit range
  • Reads Argo CD and Flux to show what the cluster runs

How it works

  1. Click production in the Environments bar
  2. Open its detail: what changed since last good
  3. Open the commit worth a look
  • AltEFocus the Environments Bar
  • AltShiftEWhat Changed Since Last Good…

Production on the graph reads your hosting provider’s deployments and comes with GitTree Pro.

  • GitTree Pro
  • New

What was checked, approved and deployed, for every pull request

The Evidence tab of a merge request in GitTree: committed and checked are reached, approved, merged, built and running are not yet, and the checks that ran on the reviewed revision are listed

The Evidence tab of a pull request lays the change out from commit to production: committed, checked, approved, merged, built, running. For each stage GitTree shows what it read from your provider and on which revision, and it lists as open items whatever does not match or could not be read. Save the record when the change is reviewed and at merge, copy it, or export the list.

  • Which checks ran on which commit, and who approved which revision
  • Open items name the gaps instead of hiding them
  • Save Record, the Records tab and Export List keep the history of a repository's changes
  • AltShiftVShow Change Evidence

Change evidence reads your hosting provider and comes with GitTree Pro.

feat(agents):04 / 04

AI coding agents in your repository, with a snapshot behind every turn

GitTree runs the coding agent you already use and pay for. It stores no AI key and sells no credits. What it adds is the repository: context going in, a snapshot before, a review after.

  • GitTree Pro

Nour: your coding agent, inside your Git client

GitTree demo: asking Nour to explain the changes and draft a commit message

Nour explains the working changes with your own coding agent, then drafts the commit message.

What this demo shows

A product demo without sound; waiting time is sped up where the picture says so. Nour is opened beside the commit graph and asked to explain the working changes in plain language. It runs the coding agent that is signed in on the computer, which reads the repository and streams its answer: a result limit on search, a new highlight helper, and three things to know. Back in the working changes, both files are staged and the sparkle button drafts a commit message with the same agent. The summary is edited by hand and the commit is created.

Nour answers questions about your repository in Ask mode and edits files and runs commands in Agent mode, in a repository you trust, with the approvals you set. It saves a snapshot before every turn that may change files, lists the changes and commands of that turn, and can undo the turn after checking for later edits.

  • Ask and Agent modes, with privileges you control
  • A snapshot before every turn, and Undo for a turn
  • Drafts commit messages and pull request descriptions from the real changes

Works with the coding-agent CLI you already use

  • Claude Code
  • Codex
  • Gemini CLI
  • Antigravity
  • Qwen Code
  • OpenCode
  • Kimi CLI
  • Cursor Agent

How it works

  1. Ask Nour to make a change in Agent mode
  2. Review the files and commands of the turn
  3. Undo the turn

Nour comes with GitTree Pro and needs one of these CLIs on your computer. What you ask goes to the agent you picked, under its own terms.

  • GitTree Pro
  • New

A failed pipeline, fixed and proven on the exact commit

A failed GitLab CI/CD run in GitTree: the unit-tests job failed, the later stages were skipped, and Fix with Nour sits in the run header next to Re-run Failed Jobs

From a failed run, Fix with Nour opens a separate checkout at the failed commit, so your own work is untouched. Nour reads the failure evidence, makes a change, and a local check runs. You review the patch and decide whether to publish. GitTree then checks the hosted run for that exact commit, and the steps stay listed until the fix is verified, also after a restart.

  • A separate fix checkout at the failed revision
  • Seven visible steps: evidence, checkout, change, local check, publish, hosted run, hand off
  • Hand the fix off as a pull request

How it works

  1. Fix with Nour on the failed run
  2. Review the patch, publish
  3. Hosted run passes for that commit
  • AltNFix with Nour

Fix with Nour needs GitTree Pro, a connected provider and your own coding-agent CLI. Nothing is pushed without your decision.

  • GitTree Pro
  • New

One gate for every agent, not only Nour

Agents outside Nour in GitTree preferences: a Claude Code profile for one repository set to Push with review, with Pause All beside Connect an Agent

Connect Claude Code, Codex or another agent you run in your own terminal or editor to GitTree’s tools for one repository. Each agent gets a profile that decides what it may do. Its pushes, rewrites and pull requests wait for you in GitTree; force push, hard reset and deleting are asked every time; credentials, trust and these settings are never offered. Pause All Agents stops them together.

  • A profile per connected agent
  • Held requests reviewed in the app before they run
  • Pause All Agents with one shortcut
  • AltAAgents Outside Nour
  • AltShiftQPause All Agents

Agents outside Nour come with GitTree Pro. Each agent runs on your computer, under its own terms.

Everyday Git, covered

The daily work is all here too, on the Free plan, with no account needed.

  • Staging changes in GitTree: a diff with Stage Hunk buttons and per-line checkboxes next to the file list
    • Free

    Stage a hunk or single lines

    Build one clean commit from messy work: stage a file, a hunk or only the lines you pick.

    In the feature list
  • GitTree branch menu with merge, rebase, interactive rebase, fast-forward and reset options that name both branches
    • Free

    Compare branches, merge from the graph

    See what a branch adds since it split from main, then merge from its menu.

    In the feature list
  • A commit’s changes shown as a side-by-side diff in GitTree with syntax highlighting
    • Free

    Blame and file history

    Who last changed each line, and a file's history across renames.

    In the feature list
  • Bisect in GitTree: five revisions left to test, and the dialog that runs a trusted command on each step to mark it good or bad
    • Free

    Bisect with a check

    Find the commit that broke something; a command you trust can mark each step good or bad.

    In the feature list
  • The GitTree command palette searching commits by content with change:parseFrontMatter, listing the two commits that changed it
    • Free

    Search by what the code changed

    Find commits by message, author or file, or by the code they added or removed with change:.

    In the feature list
  • The changelog draft in GitTree from tag v1.0.0 to the current branch: a suggested version of 1.1.0 and the features listed as Markdown
    • Free

    Changelog draft

    The commits between two points grouped by type, with a suggested next version, as Markdown.

    In the feature list
  • Repo Insights in GitTree: commits, lines, files, active days and contributors for three months of a repository, counted on this computer
    • GitTree Pro

    Repo Insights

    Counts from your history, worked out on your own computer.

    In the feature list
  • Git hooks in GitTree preferences: what runs when you commit or push, with a pre-commit hook that can stop the commit
    • Free

    Git hooks

    See what runs when you commit or push, and add checks from templates.

    In the feature list

Native on every platform

Made for macOS, Windows and Linux

A small, fast desktop app built with Rust. It respects each platform’s window controls, shortcuts, keychain and file system.

  • GitTree for macOS

    macOS 13 Ventura or later

    One universal app for Apple silicon (M1–M4) and Intel Macs.

    Universal .dmgDownload for macOS

  • GitTree for Windows

    Windows 10 (22H2) or Windows 11, 64-bit

    Install through Microsoft Store, or choose the standalone x64 EXE.

    Recommended for WindowsGet it from Microsoft Store

    Signed and distributed by Microsoft, with updates through Microsoft Store.

  • GitTree for Linux

    Ubuntu 22.04 or later, Debian 12 or later, 64-bit

    For Ubuntu and Debian: a .deb package that apt installs for you, or a portable AppImage. It uses your desktop’s own window title bar.

    Recommended for Linux
    curl -fsSL https://gittree.app/install.sh | bash

    Paste it in a terminal: it downloads the latest release, checks it, installs it and opens GitTree. Ubuntu, Debian and other current 64-bit distributions.

macOS 13+ · Windows 10 and 11 · Linux: Ubuntu 22.04+ and Debian 12+ · Free plan, no account needed

Compare Git clients

Honest, sourced comparisons with the Git GUIs developers use most, including what each one does better.

Read: the best Git GUI clients in 2026

Frequently asked questions

Straight answers about GitTree, privacy and platforms.

What is GitTree?

GitTree is a desktop Git client (a Git GUI) for macOS, Windows and Linux. It shows your repository as an interactive commit graph and lets you stage, commit, branch, merge, rebase, stash and push without typing Git commands.

Is GitTree free?

Yes. The Free plan covers every Git feature, private repositories and commercial use included, with no account and no credit card, and you push and pull with your own Git credentials. GitTree Pro, 100% off right now, adds Nour, the AI assistant, the GitHub, GitLab, Bitbucket and Azure DevOps integrations, AI commit-message and pull request drafting, and creating organizations. Pro for teams, billed per seat each month with a minimum of 3 seats, gives every member Pro.

Is it GitTree or Git Tree?

Both: the website writes GitTree and the installed app is called Git Tree. GitTree is a desktop Git GUI app for Mac, Windows and Linux made by Kodmora, a software house. It is not the git tree command or a website that draws repository trees.

Is GitTree open source?

No. The source code of GitTree is private. The installers, release notes and checksums are published in the public GitHub repository, and you can report bugs and request features there.

Do I need an account to use GitTree?

No. Local Git needs no account: when GitTree opens, choose Continue with local Git (no account), and the Free plan covers every Git feature; your repositories stay on your computer, and you push or pull with your own Git credentials. Signing in is optional. Create a GitTree account free on this website with your email address (a one-time code, no password) or with GitHub, GitLab, Bitbucket or Azure DevOps when you want to redeem GitTree Pro, create an organization or join one you are invited to; the hosting integrations, AI drafting, creating organizations and Nour, the AI assistant, come with GitTree Pro, which is 100% off right now.

Which operating systems are supported?

macOS 13 Ventura or later on Apple silicon and Intel Macs (one universal app), 64-bit Windows 10 (22H2) and Windows 11, and 64-bit Linux: Ubuntu 22.04 LTS or later and Debian 12 or later, plus derivatives that ship WebKitGTK 4.1, such as Linux Mint 21+ and Pop!_OS 22.04+ (only Ubuntu and Debian are tested).

Do I need Git installed?

Yes. GitTree uses the Git you already have (version 2.39 or newer), so everything it does matches what the command line would do. If Git is missing, the app explains how to install it.

Does it work with GitHub, GitLab, Bitbucket and Azure DevOps?

Yes. GitTree works with any Git remote over HTTPS or SSH, with your own credentials, on the Free plan. With GitTree Pro, connect GitHub, GitLab, Bitbucket or Azure DevOps accounts (including GitHub Enterprise Server and Bitbucket Data Center) to browse and clone repositories, open and review pull or merge requests and see their CI checks. GitHub and Bitbucket Cloud are the most mature; the others are new.

Does GitTree show CI/CD pipelines for GitHub Actions and GitLab CI?

Yes, with GitTree Pro. GitTree lists the runs of a branch or a commit for GitHub Actions, GitLab CI/CD, Azure Pipelines and Bitbucket Pipelines, shows stages and jobs, and follows job logs while they run. Where the provider allows it, you can re-run or cancel a run, start a workflow and approve a deployment. Preparing a local run with act or gitlab-ci-local is on the Free plan.

What is Nour, the AI assistant in GitTree?

Nour is the AI assistant inside GitTree. It runs the coding-agent CLI on your computer, such as Claude Code, Codex or Gemini CLI, to answer questions about your repository, or to edit files and run commands in a repository you trust. It saves a snapshot before every turn, so you can undo it. GitTree also drafts commit messages and pull request descriptions with the same CLI. It stores no AI key, there are no credits to buy, and Nour and AI drafting come with GitTree Pro.

Can I use Claude Code or Codex with GitTree?

Yes. Nour, the AI assistant in GitTree Pro, runs the coding-agent CLI that is already installed and signed in on your computer: Claude Code, Codex, Gemini CLI, Antigravity, Qwen Code, OpenCode, Kimi CLI, Cursor Agent or a custom agent. GitTree stores no AI key and sells no AI credits; what you ask goes to that agent under its own terms. Nour saves a snapshot before each turn that may change files, so a turn can be undone.

Is GitTree available in Arabic?

Yes. The whole app can be used in English or in Arabic, with a full right-to-left layout; the commit graph, diffs and terminal stay left to right. This website is in Arabic too, one of its ten languages.

Can GitTree undo a git reset --hard or a bad rebase?

Yes. Before a reset, rebase, squash, discard or branch delete, GitTree saves the previous state as a hidden snapshot in your repository, and Undo in the toolbar restores it. If commits were lost another way, Lost & Found searches the reflog and those snapshots for commits no branch points to and puts the one you choose on a new branch. A reset made outside GitTree has no snapshot: its commits can still be found through the reflog, but uncommitted changes that Git never stored cannot be recovered.

Does GitTree support stacked pull requests?

Yes, from version 3.0.2. A stack is a set of branches that build on each other, each with its own small pull request. GitTree shows the stack, splits a branch into one without rewriting commits, and restacks the branches above a change in one rebase. Building stacks locally is on the Free plan; Submit Stack, which creates or updates the pull requests on GitHub, GitLab, Azure DevOps or Bitbucket, comes with GitTree Pro.

Open your first repository in GitTree

Download it for macOS, Windows or Linux and open a repository you already have, with no account needed. The Free plan covers every Git feature.