Windows/macOS/Linux GUI client for GIT users
Find a file
Nils van Rijsinge eab36f08b3
localization: add DE keys for new features (#547)
InCurrentBranch added in 130c98a
Repo.CommitWithAutoStage added in 9a8f4e2
Workingcopy.CommitWithAutostage added in 9a8f4e2 and updated in 19e930e, 99c2ffe
CommitTip updated in 99c2ffe
IgnoreWhitespace added in d2a005c
DefaultRemote added in d746e35
IncludeIgnored added in 4e57cd5
2024-10-09 09:15:57 +08:00
.github/workflows ci: revert macOS package signing and remove temp artifacts 2024-08-21 16:41:05 +08:00
build readme: add description for build 2024-09-27 13:52:39 +08:00
screenshots screenshots: update to latest 2024-08-26 21:14:37 +08:00
src localization: add DE keys for new features (#547) 2024-10-09 09:15:57 +08:00
.editorconfig code_style: using avalonia's editorconfig and run dotnet format. 2024-03-31 16:54:29 +08:00
.gitattributes git: simplify .gitattributes used by this project 2024-09-24 14:23:54 +08:00
.gitignore git: update ignore files/folders 2024-09-24 14:20:15 +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 code_review: PR #497 2024-09-22 19:03:55 +08:00
SourceGit.sln project: remove unused folder 2024-10-03 18:32:13 +08:00
VERSION version: Release 8.33 2024-10-08 09:24:25 +08:00

SourceGit

Opensource Git GUI client.

Highlights

  • Supports Windows/macOS/Linux
  • Opensource/Free
  • Fast
  • English/Français/Deutsch/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
  • 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.

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 the app data dir 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
    
  • Portable versions can be found in Releases

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:

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 KEY IN external_editors.json
Visual Studio Code YES YES YES VSCODE
Visual Studio Code - Insiders YES YES YES VSCODE_INSIDERS
VSCodium YES YES YES VSCODIUM
JetBrains Fleet YES YES YES FLEET
Sublime Text YES YES YES SUBLIME_TEXT
Zed NO YES YES ZED

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 dir and provide the path directly. For example:

{
    "tools": {
        "VSCODE": "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