GitBunki GitBunki
Docs · Features

Features

The complete feature list for GitBunki, grouped by area.

Commit History

#

A full commit log with a lane-based graph and ref badges.

  • Full commit log with configurable limit
  • Graph visualization with lane-based branch/merge topology
  • Branch and tag ref badges on commit rows
  • Gravatar avatars shown beside author names, with initials fallback if no avatar is available
  • Search and filter commits by message, author, or SHA
  • Click a commit to view its details
  • Context-menu copy actions for full SHA, short SHA, and commit message
  • Context-menu actions for interactive rebase and resetting the current branch to a selected commit

Commit Detail

#

Everything that landed in a commit — message, files, diff, actions.

  • Commit message, author, date, and full SHA
  • List of files changed with per-file added/deleted line counts
  • File context-menu actions to reveal in Finder and copy relative or absolute paths
  • Full diff with color-coded additions and deletions
  • Syntax-highlighted diffs with light and dark color themes
  • Toggle between unified and side-by-side diff views
  • Cherry-pick and revert selected commit
  • Create a branch or tag at the selected commit
  • "Browse Files" button to open the tree browser at that commit
  • "History" button on each file to view its commit history

Staging

#

GitX-style three-column layout. Stage hunks. Stage lines.

  • Three-column layout: unstaged files, commit message, staged files
  • Diff panel on top showing the selected file's changes, with translucent top-bar behavior while scrolling
  • Unified and side-by-side diff modes in the diff panel
  • Syntax-highlighted diffs with light and dark color themes
  • Word-level highlights inside changed lines
  • Soft-wrapped diff lines for easier reading in narrow panes
  • Stage/unstage individual files with button or double-click
  • File context-menu actions to reveal in Finder and copy relative or absolute paths
  • Stage/unstage all files at once
  • Stage/unstage individual hunks
  • Stage/unstage selected lines within a hunk (hover to reveal line controls, click to select, shift-click for range)
  • Commit with message (Cmd+Enter shortcut when editing)
  • Amend latest commit via checkbox in commit panel (git commit --amend)

Tree Browser

#

Walk the file tree at any point in history.

  • Browse the full file tree at any commit
  • Breadcrumb navigation with clickable path components
  • Directory-first sorting, alphabetical within groups
  • Single-click to preview file contents, double-click to enter directories
  • File type icons (Swift, JSON, images, Xcode projects, etc.)
  • "Blame" and "History" buttons on selected files

Blame View

#

Per-line context — who, when, why.

  • Per-line annotations: commit SHA, author, date, and summary
  • Alternating background for commit groups
  • Click a SHA to navigate to that commit's detail view
  • Author and date shown on every line

File History

#

Filter the log to a single file path.

  • View all commits that touched a specific file
  • Accessible from commit detail (per-file) and tree browser
  • Click a commit to navigate to its detail view

Branches

#

Track, switch, merge, rebase — with a contextual detail panel.

  • List all local and remote branches
  • Current branch indicator
  • Switch branches with one click
  • Copy branch names and SHAs from branch context menus
  • Branch switching is blocked when working tree is dirty, with guidance to resolve/stash/commit first
  • Create new branches from HEAD or any commit
  • Delete local branches (safe delete)
  • Set a local branch upstream from the context menu, with a remote picker and remote-branch picker
  • Branch button in commit detail view for quick branching
  • Contextual detail panel on selection: ahead/behind tracking, upstream-gone indicator, last-commit summary (avatar, author, date, subject)
  • Recent commits list (last 20) with click-to-expand inline diff and a shortcut to open the full commit detail
  • Inline actions: Checkout, Merge (auto / no-fast-forward / fast-forward-only), Rebase current onto branch, Delete (safe + force-delete with confirmation)
  • Context-menu actions to merge the selected branch into the current branch or rebase the current branch onto a local/remote ref

History Rewrite

#

Interactive rebase and reset, without the cold sweat.

  • Rebase the current branch onto another branch or remote-tracking ref
  • Launch Git's interactive rebase todo from a selected history commit
  • Detect in-progress rebase state after refresh or relaunch
  • Continue, skip, or abort an in-progress rebase from the UI
  • Reset the current branch to a selected commit in soft, mixed, or hard mode
  • Hard reset requires a separate destructive confirmation that names the target commit
  • Actionable errors for dirty working trees, conflicts, detached HEAD, unknown targets, and missing rebase state

Tags

#

Lightweight or annotated. Push, delete, inspect.

  • List all tags with annotated/lightweight indicator
  • Copy tag names and SHAs from tag context menus
  • Create lightweight or annotated tags on any commit
  • Create tags on HEAD from the Branches view
  • Delete tags
  • Tag button in commit detail view for quick tagging
  • Contextual detail panel on selection: tagger name, tagger date, and full annotation message (annotated tags); tagged commit's files and diff via the standard commit detail view
  • Inline actions: Checkout, Push tag (git push origin refs/tags/<name>), Delete (with confirmation)

Stash

#

Save it for later — apply, pop, or drop.

  • Create a stash from working tree changes with optional message
  • Include untracked files when creating stash (toggle)
  • List stash entries (stash@{n}) with message and commit SHA
  • Copy stash names and SHAs from stash context menus
  • Unified and side-by-side diff modes for selected stash files
  • Syntax-highlighted stash diffs with light and dark color themes
  • Apply a stash without removing it
  • Pop a stash (apply and remove)
  • Drop a stash (remove without applying)
  • Contextual detail panel on selection: stash ref, short SHA, message, source branch parsed from the subject, file diff list
  • Inline actions in the detail panel: Apply, Pop (confirms), Drop (confirms)

Right Panel

#

Contextual to whatever you've selected on the left.

  • Contextual to the active tab — selecting a commit, stash, tag, or branch on the left routes its diff and actions to the right panel
  • Switching tabs clears the panel so a History selection never lingers on Stash/Tags/Branches
  • Tab-aware empty-state placeholder when nothing is selected

Remote Operations

#

Multi-remote first-class. Add, rename, edit, fetch.

  • Dedicated Remotes tab for listing configured remotes
  • Add, rename, remove, and edit fetch URLs for remotes
  • Show separate push URLs when a remote has split fetch/push configuration
  • Multi-remote branch parsing, including non-origin remote-tracking refs
  • Pull, push, and fetch from the toolbar
  • Fetch from all remotes

General

#

The shell around it all.

  • Three-column NavigationSplitView layout (sidebar, content, detail)
  • Repository picker via native macOS folder dialog
  • GitBunki branch-motif logo and macOS app icon
  • Repository name and path in the title bar
  • Toolbar actions to reveal the repository in Finder or open it in Terminal
  • Loading overlay during long operations
  • Error alerts for failed operations
  • Searchable toolbar
  • Settings window with General, Shortcuts, and Terminal tabs
  • Appearance preference for System, Light, or Dark mode
  • Terminal setup guidance with a copyable snippet to install gitbunki and gitbk launchers
  • macOS 26+ support