Windows/macOS/Linux GUI client for GIT users
Find a file
2024-06-23 17:30:47 +08:00
.github/workflows ci: Remove the publish directory when packaging tarball 2024-06-20 11:17:14 +08:00
build feature: supports windows on arm 2024-06-14 11:43:19 +08:00
screenshots update: new screenshots 2024-05-17 11:35:38 +08:00
src ux: z order of horizontal indicator line 2024-06-23 17:30:47 +08:00
.editorconfig code_style: using avalonia's editorconfig and run dotnet format. 2024-03-31 16:54:29 +08:00
.gitattributes Gitattributes Fix 2024-03-20 02:33:19 -05:00
.gitignore update: git ignore files & folders 2024-04-16 19:50:40 +08:00
global.json dotnet Config Files 2024-03-20 01:56:26 -05:00
LICENSE style<*>: use mono font for all contents 2024-02-18 10:41:41 +08:00
README.md readme: add image diff view mode tips 2024-06-22 11:51:58 +08:00
SourceGit.sln build: read version from VERSION file 2024-04-17 11:24:25 +08:00
VERSION version: Release 8.17 2024-06-17 09:13:57 +08:00

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
    • 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 or sourcegit_x.y.osx-arm64.zip from Releases. x64 for Intel and arm64 for Apple Silicon.
  • Move SourceGit.app to Applications 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:

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

Theme Dark

  • Light Theme

Theme Light

How to Customize Theme

  1. 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.Badage Badage background 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"
}
  1. Open Preference -> Appearance, choose the json file you just created in Custom 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.

Contributors