Opensource Git GUI client.
- Supports Windows/macOS/Linux
- Opensource/Free
- Fast
- English/简体中文/繁體中文
- Built-in light/dark themes
- Customize theme
- Visual commit graph
- Supports SSH access with each remote
- GIT commands with GUI
- Clone/Fetch/Pull/Push...
- Merge/Rebase/Reset/Revert/Amend/Cherry-pick...
- Interactive rebase (Basic)
- Branches
- Remotes
- Tags
- Stashes
- Submodules
- Worktrees
- Archive
- Diff
- Save as patch/apply
- File histories
- Blame
- Revision Diffs
- Branch Diff
- Image Diff - Side-By-Side/Swipe/Blend
- GitFlow support
- Git LFS support
Linux only tested on Debian 12 on both X11 & Wayland.
To use this tool, you need to install Git(>=2.23.0) first.
You can download the latest stable from Releases or download workflow artifacts from Github Actions to try this app based on latest commits.
This software creates a folder $"{System.Environment.SpecialFolder.ApplicationData}/SourceGit", which is platform-dependent, to store user settings, downloaded avatars and crash logs.
| OS | PATH |
|---|---|
| Windows | C:\Users\USER_NAME\AppData\Roaming\SourceGit |
| Linux | ${HOME}/.config/SourceGit |
| macOS | ${HOME}/Library/Application Support/SourceGit |
For Windows users:
- MSYS Git is NOT supported. Please use official Git for Windows instead.
sourcegit_x.y.win-x64.zipmay be reported as virus by Windows Defender. I don't know why. I have manually tested the zip to be uploaded using Windows Defender before uploading and no virus was found. If you have installed .NET 8 SDK locally, I suggest you to compile it yourself. And if you have any idea about how to fix this, please open an issue.
For macOS users:
- Download
sourcegit_x.y.osx-x64.ziporsourcegit_x.y.osx-arm64.zipfrom Releases.x64for Intel andarm64for Apple Silicon. - Move
SourceGit.apptoApplicationsfolder. - Make sure your mac trusts all software from anywhere. For more information, search
spctl --master-disable. - Make sure git-credential-manager is installed on your mac.
- You may need to run
sudo xattr -cr /Applications/SourceGit.appto make sure the software works.
For Linux users:
xdg-openmust be installed to support open native file manager.- Make sure git-credential-manager is installed on your linux.
- Maybe you need to set environment variable
AVALONIA_SCREEN_SCALE_FACTORS. See https://github.com/AvaloniaUI/Avalonia/wiki/Configuring-X11-per-monitor-DPI.
This app supports open repository in external tools listed in the table below.
| Tool | Windows | macOS | Linux | Environment Variable |
|---|---|---|---|---|
| Visual Studio Code | YES | YES | YES | VSCODE_PATH |
| Visual Studio Code - Insiders | YES | YES | YES | VSCODE_INSIDERS_PATH |
| VSCodium | YES | YES | YES | VSCODIUM_PATH |
| JetBrains Fleet | YES | YES | YES | FLEET_PATH |
| Sublime Text | YES | YES | YES | SUBLIME_TEXT_PATH |
- You can set the given environment variable for special tool if it can NOT be found by this app automatically.
- Installing
JetBrains Toolboxwill help this app to find other JetBrains tools installed on your device.- On macOS, you may need to use
launchctl setenvto make sure the app can read these environment variables.
- Dark Theme
- Light Theme
- Create a new json file, and provide your favorite colors with follow keys:
| Key | Description |
|---|---|
| Color.Window | Window background color |
| Color.WindowBorder | Window border color. Only used on Linux. |
| Color.TitleBar | Title bar background color |
| Color.ToolBar | Tool bar background color |
| Color.Popup | Popup panel background color |
| Color.Contents | Background color used in inputs, data grids, file content viewer, change lists, text diff viewer, etc. |
| Color.Badge | Badge background color |
| Color.BadgeFG | Badge foreground color |
| Color.Conflict | Conflict panel background color |
| Color.ConflictForeground | Conflict panel foreground color |
| Color.Border0 | Border color used in some controls, like Window, Tab, Toolbar, etc. |
| Color.Border1 | Border color used in inputs, like TextBox, ComboBox, etc. |
| Color.Border2 | Border color used in visual lines, like seperators, Rectange, etc. |
| Color.FlatButton.Background | Flat button background color, like Cancel, Commit & Push button |
| Color.FlatButton.BackgroundHovered | Flat button background color when hovered, like Cancel button |
| Color.FG1 | Primary foreground color for all text elements |
| Color.FG2 | Secondary foreground color for all text elements |
| Color.Diff.EmptyBG | Background color used in empty lines in diff viewer |
| Color.Diff.AddedBG | Background color used in added lines in diff viewer |
| Color.Diff.DeletedBG | Background color used in deleted lines in diff viewer |
| Color.Diff.AddedHighlight | Background color used for changed words in added lines in diff viewer |
| Color.Diff.DeletedHighlight | Background color used for changed words in deleted lines in diff viewer |
For example:
{
"Color.Window": "#FFFF6059"
}- Open
Preference->Appearance, choose the json file you just created inCustom Color Schema.
NOTE: The
Custom Color Schemawill override the colors with same keys in current active theme.
Thanks to all the people who contribute.

