You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit be786be
Browse filesBrowse the repository at this point in the historyBrowse files
docs: Restructure README features and remove shortcut and rationale sections
Consolidate feature descriptions into clearer categorized sections, fold keyboard shortcuts and comparison rationale into surrounding prose, and shorten the CLI and search documentation.
Copy file name to clipboardExpand all lines: README.md
+23-66Lines changed: 23 additions & 66 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,71 +34,47 @@
34
34
</picture>
35
35
</p>
36
36
37
-
Commit+ is a native macOS Git client built with Swift and SwiftUI — designed to be fast, lightweight, and deeply integrated with the platform. Optional account features add sync, updates, and AI-powered commit messages.
38
-
39
-
## Why Commit+
40
-
41
-
macOS Git clients today fall into three groups:
42
-
43
-
-**Command line**: Powerful but requires memorizing dozens of commands and flags.
44
-
-**Electron-based**: SourceTree, GitKraken, Fork. Cross-platform but not native — slow to start, heavy on memory, inconsistent with macOS conventions.
45
-
-**Proprietary**: Tower. Polished and native, but paid and closed source.
46
-
47
-
Commit+ is the missing fourth: native, lightweight, and open source.
37
+
Commit+ is a native macOS Git client built with Swift and SwiftUI — designed to be fast, lightweight, and deeply integrated with the platform. Optional account features add settings sync, provider integrations, and AI-assisted workflows.
48
38
49
39
## Features
50
40
51
-
### Drag & Drop
52
-
53
-
Complex Git actions become effortless with drag and drop:
41
+
### Revision Browser & Visual Comparisons
54
42
55
-
-**Reorder / Squash Commits**: Drag commits in the history view to reorder, squash, or fixup (interactive rebase)
56
-
-**Cherry-Pick / Revert**: Drag commits between branches to cherry-pick; hold ⌥ to revert
57
-
-**Merge / Rebase Branches**: Drag a branch onto HEAD to merge; hold ⌥ to rebase instead
58
-
-**Push / Pull Branches**: Drag branches to the remote section to publish or pull
59
-
-**Stage / Stash Files**: Drag files between working copy, staged, and stash views
60
-
-**Apply Stashes**: Drag a stash or individual file back to the working copy to apply
43
+
-**Browse any revision**: Explore its complete file and folder tree without checking it out, with text, image, and Git LFS previews.
44
+
-**Compare files and folders**: Compare a path in your working tree or a revision against any commit, branch, or tag.
45
+
-**Compare branches**: Inspect changed files, unique commits, merge bases, and ahead/behind counts using merge-base or tip-to-tip comparisons.
61
46
62
-
### Undo Any Action
47
+
### Selective Apply & Revert
63
48
64
-
Tower-style undo/redo for stage/unstage, commits, stashes, branch operations, discards, and remote actions. Press `Cmd+Z` to undo, `Cmd+Shift+Z` to redo.
49
+
Bring back only the changes you need from any commit — or reverse them — by file, hunk, or selected lines. Commit+ previews the patch, detects stale state, and provides visual conflict resolution when changes do not apply cleanly.
65
50
66
-
### Full Git Management
51
+
### Git LFS
67
52
68
-
Commit, Pull, Push, Fetch, Branch, Merge, Rebase, Stash, Cherry-pick, Revert, Reset — all with keyboard shortcuts.
53
+
Set up Git LFS, manage tracking rules, find and convert large files, inspect local object availability, and download missing content with progress and cancellation. Commit+ can use System Git LFS or manage its own private runtime, including LFS-aware clone and revision previews.
69
54
70
-
### Built-in Conflict Resolution
55
+
### Drag & Drop Workflows
71
56
72
-
Visual diff viewer with inline conflict markers, stage resolution, and abort merge/rebase — resolve conflicts without leaving the app.
57
+
Stage and unstage files, apply stashes, reorder or squash commits, cherry-pick or revert across branches, merge or rebase branches, and publish or pull branches with direct manipulation.
73
58
74
-
### Smarter Worktree Management
59
+
### Safe, Complete Git Management
75
60
76
-
Create, switch, and remove git worktrees from the sidebar for isolated parallel feature work, all managed visually.
-**Undo & redo**: Recover from staging, commits, stashes, discards, branch operations, and supported remote actions.
63
+
-**Conflict resolution**: Review inline conflicts, choose resolutions, stage the result, or continue/skip/abort interrupted operations.
64
+
-**Worktrees & submodules**: Create and manage worktrees, plus add, initialize, update, synchronize, edit, and remove submodules from the sidebar.
65
+
-**Pull requests**: Create pull requests for GitHub, GitLab, and Bitbucket repositories, with in-app review for GitHub and GitLab.
77
66
78
67
### Git Flow
79
68
80
-
Repository-aware Git Flow without requiring the external `git-flow` command:
81
-
82
-
-**One-click setup**: Detect `main`/`master` and `develop`, then customize branch names and prefixes per repository
83
-
-**Start topics**: Create `feature/`, `bugfix/`, `release/`, and `hotfix/` branches from the right base branch
84
-
-**Worktree-aware starts**: Start a topic in the current working copy or a new worktree
85
-
-**Finish topics**: Finish with merge commits or rebase-and-fast-forward, with release/hotfix tag options
86
-
-**Recovery controls**: Resume or abort interrupted finish flows after conflicts or partial operations
87
-
-**Cross-Mac configuration sync**: Signed-in users can sync durable Git Flow settings for the same remote repository while keeping paths, worktrees, credentials, and recovery state local
69
+
Set up and run feature, bugfix, release, and hotfix flows without an external `git-flow` installation. Start topics in the current repository or a new worktree, finish with merge or rebase strategies, and recover interrupted flows.
88
70
89
-
### AI Commit Generation
71
+
### AI-Assisted Git
90
72
91
-
Generate editable Conventional Commit messages from your staged diff, or from changed files when nothing is staged:
73
+
Generate editable Conventional Commit messages with Apple Intelligence or your own OpenAI, Gemini, Claude, DeepSeek, or OpenRouter key. Repository AI can inspect repository context and route supported actions through Commit+'s existing safety and confirmation flows.
92
74
93
-
-**Provider choices**: Apple Intelligence, OpenAI, Google Gemini, Claude, DeepSeek, and OpenRouter
94
-
-**Private local option**: Apple Intelligence runs on-device when supported and enabled on your Mac
95
-
-**BYOK cloud providers**: Store API keys in macOS Keychain and configure model IDs in Settings
96
-
-**Context-aware output**: Uses file lists, line stats, patch context, branch name, and recent commit subjects
97
-
-**Safe handoff**: Generated messages stay editable before committing, and Commit+ asks you to regenerate if the underlying changes move during generation
75
+
### Search & Terminal Integration
98
76
99
-
### Terminal Integration
100
-
101
-
Open any repository directly from the terminal with the `commit` CLI command:
77
+
Quick Search finds commits, files, branches, and tags from one place. The optional `commit` CLI opens a repository in Commit+ from Terminal:
102
78
103
79
```sh
104
80
commit # Open the current folder's repository
@@ -107,33 +83,14 @@ commit "/path/to/repo" # Open a specific repository
107
83
commit --help
108
84
```
109
85
110
-
On first launch, Commit+ offers to **Install CLI & Configure PATH** — this creates a `commit` symlink at `~/.local/bin/commit` and adds it to your shell configuration (zsh, bash, or fish). You can also install later from **Settings → General → Command Line**.
111
-
112
-
The command opens the repository in Commit+ (it does not create a Git commit). Subfolders resolve to the working-tree root, and linked worktrees are supported. To uninstall, remove `~/.local/bin/commit`.
113
-
114
-
### Quick Search
115
-
116
-
Spotlight-style search modal (`Cmd+Shift+F`) to instantly find commits, files, branches, and tags.
86
+
Install it from **Settings → General → Command Line**. The command opens the repository; it does not create a Git commit. Subfolders and linked worktrees are supported.
117
87
118
88
## System Requirements
119
89
120
90
-**macOS**: 26.2+
121
91
-**Xcode**: 26.2+ (to build from source)
122
92
-**Git**: Installed on the system (Homebrew or Xcode Command Line Tools)
123
93
124
-
## Keyboard Shortcuts
125
-
126
-
| Shortcut | Action |
127
-
|----------|--------|
128
-
|`Cmd+Shift+C`| Commit |
129
-
|`Cmd+Shift+P`| Pull |
130
-
|`Cmd+Option+P`| Push |
131
-
|`Cmd+Option+F`| Fetch |
132
-
|`Cmd+Shift+B`| Branch |
133
-
|`Cmd+Shift+M`| Merge |
134
-
|`Cmd+Shift+S`| Stash |
135
-
|`Cmd+Shift+F`| Search |
136
-
137
94
## Contributing
138
95
139
96
We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for setup instructions, coding conventions, and pull request guidelines.
0 commit comments