mirror of
https://github.com/sourcegit-scm/sourcegit.git
synced 2024-12-22 20:37:19 -08:00
Windows/macOS/Linux GUI client for GIT users
7f389b2e6f
* avoid invalid repository setting remains in preference.json * supports to restore tabs that not added to the Welcome page |
||
---|---|---|
.github/workflows | ||
build | ||
screenshots | ||
src | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
global.json | ||
LICENSE | ||
README.md | ||
SourceGit.sln | ||
VERSION |
SourceGit
Opensource Git GUI client.
Highlights
- 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.
How to Use
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.zip
may 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.zip
orsourcegit_x.y.osx-arm64.zip
from Releases.x64
for Intel andarm64
for Apple Silicon. - Move
SourceGit.app
toApplications
folder. - 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.app
to make sure the software works.
For Linux users:
xdg-open
must 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.
External Tools
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 Toolbox
will help this app to find other JetBrains tools installed on your device.- On macOS, you may need to use
launchctl setenv
to make sure the app can read these environment variables.
Screenshots
- Dark Theme
- Light Theme
How to Customize 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 Schema
will override the colors with same keys in current active theme.
Contributing
Thanks to all the people who contribute.