GitHub - sourcegit-scm/sourcegit: Windows/macOS/Linux GUI client for GIT users (original) (raw)

SourceGit - Opensource Git GUI client.

stars forks license latest downloads

Screenshots

Highlights

Warning

Linux only tested on Debian 12 on both X11 & Wayland.

How to Use

To use this tool, you need to install Git(>=2.25.1) 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, which is platform-dependent, to store user settings, downloaded avatars and crash logs.

OS PATH
Windows %APPDATA%\SourceGit
Linux ~/.sourcegit
macOS ~/Library/Application Support/SourceGit

Tip

For Windows users:

Note

git-flow is no longer shipped with Git for Windows since 2.51.1. You can use it by following these steps:

For macOS users:

Note

macOS packages in the Release page of this project are all unsigned. If you are worried about potential security issues with the above command, you can download the signed package from the distribution repository provided by @ybeapps (there is no need to execute the above command while installing SourceGit).

For Linux users:

Fedora 41 and newer

sudo dnf config-manager addrepo --from-repofile=./sourcegit.repo

Fedora 40 and earlier

sudo dnf config-manager --add-repo ./sourcegit.repo
sudo dnf install sourcegit
If your distribution isn't using dnf, please refer to the documentation of your distribution on how to add an rpm repository.

Import GPG key

curl -fsSL https://deb-repo.gadfly.vip/public.key | sudo gpg --dearmor -o /usr/share/keyrings/deb-repo.gpg

Add repository (DEB822 format, recommended for Bookworm+ / 22.04+)

echo "Types: deb
URIs: https://deb-repo.gadfly.vip
Suites: stable
Components: main
Architectures: $(dpkg --print-architecture)
Signed-By: /usr/share/keyrings/deb-repo.gpg" | sudo tee /etc/apt/sources.list.d/deb-repo.sources

Or use one‑line format for older releases:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/deb-repo.gpg] https://deb-repo.gadfly.vip stable main" | sudo tee / etc/apt/sources.list.d/deb-repo.list

Update and install

sudo apt update
sudo apt install sourcegit

Commandline arguments

Users can also launcher SourceGit from commandline. Usage:

<SOURCEGIT_EXEC> <DIR>                       // Open repository in existing `SourceGit` instance or a new one
<SOURCEGIT_EXEC> --history <FILE_OR_DIR>     // Launch `SourceGit` to see the history of a file or dir
<SOURCEGIT_EXEC> --blame <FILE_PATH>         // Launch `SourceGit` to blame a file (HEAD version only) 

OpenAI

This software supports using OpenAI or other AI service that has an OpenAI compatible HTTP API to generate commit message. You need configurate the service in Preference window.

For OpenAI:

For other AI service:

External Tools

This app supports open repository in external tools listed in the table below.

Tool Windows macOS Linux
Visual Studio Code YES YES YES
Visual Studio Code - Insiders YES YES YES
VSCodium YES YES YES
Cursor YES YES YES
Sublime Text YES YES YES
Zed YES YES YES
Visual Studio YES NO NO

Note

This app will try to find those tools based on some pre-defined or expected locations automatically. If you are using one portable version of these tools, it will not be detected by this app.
To solve this problem you can add a file named external_editors.json in app data storage directory and provide the path directly.
User can also exclude some editors by using external_editors.json.

The format of external_editors.json:

{ "tools": { "Visual Studio Code": "D:\VSCode\Code.exe" }, "excludes": [ "Visual Studio Community 2019" ] }

Note

This app also supports a lot of JetBrains IDEs, installing JetBrains Toolbox will help this app to find them.

Conventional Commit Helper

You can define your own conventional commit types (per-repository) by following steps:

  1. Create a json file with your own conventional commit type definitions. For example:

[ { "Name": "New Feature", "Type": "Feature", "Description": "Adding a new feature", "PrefillShortDesc": "this is a test" }, { "Name": "Bug Fixes", "Type": "Fix", "Description": "Fixing a bug" } ]

  1. Configure the Conventional Commit Types in repository configuration window.

Contributing

Everyone is welcome to submit a PR. Please make sure your PR is based on the latest develop branch and the target branch of PR is develop.

This project has a submodule in depends/AvaloniaEdit which is a custom fork of Official AvaloniaEdit. Please make sure it is initialized - enable --recurse-submodules option while cloning or run git submodule update --init after cloned.

In short, here are the commands to get started once .NET tools are installed:

dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org dotnet restore dotnet build dotnet run --project src/SourceGit.csproj

Thanks to all the people who contribute.

Contributors

Translation Status

You can find the current translation status in TRANSLATION.md

Translate Utility Script

A script that assists with translations by reading the target language, comparing it with the base language, and going through missing keys one by one, so the translator can provide the translations interactively without needing to check each key manually.

Usage

Check for a given language (e.g., pt_BR) and optionally check for missing translations:

python translate_helper.py pt_BR [--check]

The script will read the base language file (en_US.axaml) and the target language file (e.g., pt_BR.axaml), identify missing keys, and prompt you to provide translations for those keys. If the --check flag is used, it will only list the missing keys without prompting for translations.

Third-Party Components

For detailed license information, see THIRD-PARTY-LICENSES.md.