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
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-
originremote-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
gitbunkiandgitbklaunchers - macOS 26+ support