Windows/macOS/Linux GUI client for GIT users
Find a file
Vladimir Eremeev 35eafd6784 Handle system tray menu items
Show main window
Open preferences
2024-12-24 18:13:09 +03:00
.github/workflows ci: do not use portable for windows actions 2024-12-24 14:48:04 +08:00
build ci: do not use portable for windows actions 2024-12-24 14:48:04 +08:00
screenshots screenshots: update 2024-10-15 11:23:57 +08:00
src Handle system tray menu items 2024-12-24 18:13:09 +03:00
.editorconfig code_style: remove unused namespace using 2024-11-29 10:35:23 +08:00
.gitattributes enhance: depend on SO in rpm package (#688) 2024-11-12 19:50:16 +08:00
.gitignore ci: add Localization Check CI (#600) 2024-10-25 14:22:38 +08:00
global.json project: upgrade to .NET 9 (#694) 2024-11-16 16:06:30 +08:00
LICENSE style<*>: use mono font for all contents 2024-02-18 10:41:41 +08:00
README.md feature: add -p:EnablePortable=true option for dotnet publish command to store app data portable (#834) 2024-12-24 09:23:50 +08:00
SourceGit.sln ci: do not use portable for windows actions 2024-12-24 14:48:04 +08:00
TRANSLATION.md doc: Update translation status and missing keys 2024-12-18 10:54:50 +00:00
VERSION version: Release 8.44 2024-12-23 09:20:00 +08:00

SourceGit - Opensource Git GUI client.

stars forks license latest downloads

Highlights

  • Supports Windows/macOS/Linux
  • Opensource/Free
  • Fast
  • Deutsch/English/Español/Français/Italiano/Português/Русский/简体中文/繁體中文
  • 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...
    • Amend/Reword
    • 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
  • Search commits
  • GitFlow
  • Git LFS
  • Issue Link
  • Workspace
  • Using AI to generate commit message (C# port of anjerodev/commitollama)

Warning

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

Translation Status

en_US de__DE es__ES fr__FR it__IT pt__BR ru__RU zh__CN zh__TW

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 or ${HOME}/.sourcegit
macOS ${HOME}/Library/Application Support/SourceGit

Tip

You can open this data storage directory from the main menu.

For Windows users:

  • MSYS Git is NOT supported. Please use official Git for Windows instead.
  • You can install the latest stable from winget with follow commands:
    winget install SourceGit
    

Note

winget will install this software as a commandline tool. You need run SourceGit from console or Win+R at the first time. Then you can add it to the taskbar.

  • You can install the latest stable by scoope with follow commands:
    scoop bucket add extras
    scoop install sourcegit
    
  • Pre-built binaries can be found in Releases
  • You can run dotnet publish -c Release -r win-x64 -p:EnablePortable=true -o $YOUR_PUBLISH_DIR .\src\SourceGit.csproj to build a portable version.

For macOS users:

  • Thanks @ybeapps for making SourceGit available on Homebrew. You can simply install it with following command:
    brew tap ybeapps/homebrew-sourcegit
    brew install --cask --no-quarantine sourcegit
    
  • If you want to install SourceGit.app from Github Release manually, you need run following command to make sure it works:
    sudo xattr -cr /Applications/SourceGit.app
    
  • Make sure git-credential-manager is installed on your mac.
  • You can run echo $PATH > ~/Library/Application\ Support/SourceGit/PATH to generate a custom PATH env file to introduce PATH env to SourceGit.

For Linux users:

  • For Debian/Ubuntu based distributions, you can add the sourcegit repository by following: You may need to install curl and/or gpg first, if you're on a very minimal host:
    apt update && apt install curl gpg -y
    
    Install the registry signing key:
    curl -fsSL "https://packages.buildkite.com/sourcegit/sourcegit-deb/gpgkey" | gpg --dearmor -o /etc/apt/keyrings/sourcegit_sourcegit-deb-archive-keyring.gpg
    
    Configure the source:
    echo -e "deb [signed-by=/etc/apt/keyrings/sourcegit_sourcegit-deb-archive-keyring.gpg] https://packages.buildkite.com/sourcegit/sourcegit-deb/any/ any main\ndeb-src [signed-by=/etc/apt/keyrings/sourcegit_sourcegit-deb-archive-keyring.gpg] https://packages.buildkite.com/sourcegit/sourcegit-deb/any/ any main" > /etc/apt/sources.list.d/buildkite-sourcegit-sourcegit-deb.list
    
    Update your local repository and install the package:
    apt update && apt install sourcegit
    
  • For RHEL/Fedora based distributions, you can add the sourcegit repository by following: Configure the source:
    sudo sh -c 'echo -e "[sourcegit-rpm]\nname=sourcegit-rpm\nbaseurl=https://packages.buildkite.com/sourcegit/sourcegit-rpm/rpm_any/rpm_any/\$basearch\nenabled=1\nrepo_gpgcheck=1\ngpgcheck=0\ngpgkey=https://packages.buildkite.com/sourcegit/sourcegit-rpm/gpgkey\npriority=1"' > /etc/yum.repos.d/sourcegit-rpm.repo
    
    Install the package with this command:
    sudo dnf install -y sourcegit
    
  • Appimage files can be found on AppimageHub
  • 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.
  • If you can NOT type accented characters, such as ê, ó, try to set the environment variable AVALONIA_IM_MODULE to none.

OpenAI

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

For OpenAI:

  • Server must be https://api.openai.com/v1/chat/completions

For other AI service:

  • The Server should fill in a URL equivalent to OpenAI's https://api.openai.com/v1/chat/completions. For example, when using Ollama, it should be http://localhost:11434/v1/chat/completions instead of http://localhost:11434/api/generate
  • The API Key is optional that depends on the 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
Fleet YES YES YES
Sublime Text YES YES YES
Zed NO 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. For example:

{
    "tools": {
        "Visual Studio Code": "D:\\VSCode\\Code.exe"
    }
}

Note

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

Screenshots

  • Dark Theme

    Theme Dark

  • Light Theme

    Theme Light

  • Custom

    You can find custom themes from sourcegit-theme. And welcome to share your own themes.

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.

Thanks to all the people who contribute.

Contributors