Repository files navigation

SourceGit - Opensource Git GUI client.

starsforkslicenselatestdownloads

Highlights

  • Supports Windows/macOS/Linux
  • Opensource/Free
  • Fast
  • Deutsch/English/Español/Français/Italiano/Português/Русский/Українська/简体中文/繁體中文/日本語/தமிழ் (Tamil)
  • 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/Cherry-pick...
    • Amend/Reword/Squash
    • Interactive rebase
    • 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
  • Git command logs
  • Search commits
  • GitFlow
  • Git LFS
  • Bisect
  • Issue Link
  • Workspace
  • Custom Action
  • Using AI to generate commit message (C# port of anjerodev/commitollama)

Warning

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

Translation Status

You can find the current translation status in TRANSLATION.md

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 $"{System.Environment.SpecialFolder.ApplicationData}/SourceGit", which is platform-dependent, to store user settings, downloaded avatars and crash logs.

OSPATH
Windows%APPDATA%\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 Open Data Storage Directory.
  • You can create a data folder next to the SourceGit executable to force this app to store data (user settings, downloaded avatars and crash logs) into it (Portable-Mode). Only works on Windows.

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 scoop with follow commands:
    scoop bucket add extras
    scoop install sourcegit
  • Pre-built binaries can be found in Releases

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:

  • Thanks @aikawayataro for providing rpm and deb repositories, hosted on Codeberg.

    deb how to:

    curl https://codeberg.org/api/packages/yataro/debian/repository.key | sudo tee /etc/apt/keyrings/sourcegit.asc
    echo"deb [signed-by=/etc/apt/keyrings/sourcegit.asc, arch=amd64,arm64] https://codeberg.org/api/packages/yataro/debian generic main"| sudo tee /etc/apt/sources.list.d/sourcegit.list
    sudo apt update
    sudo apt install sourcegit

    rpm how to:

    curl https://codeberg.org/api/packages/yataro/rpm.repo | sed -e 's/gpgcheck=1/gpgcheck=0/'> sourcegit.repo
    # 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.

  • AppImage files can be found on AppImage hub, xdg-open (xdg-utils) 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 compatible HTTP API to generate commit message. You need configurate the service in Preference window.

For OpenAI:

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

For other AI service:

  • The Server should fill in a URL equivalent to OpenAI's https://api.openai.com/v1. For example, when using Ollama, it should be http://localhost:11434/v1 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.

ToolWindowsmacOSLinux
Visual Studio CodeYESYESYES
Visual Studio Code - InsidersYESYESYES
VSCodiumYESYESYES
FleetYESYESYES
Sublime TextYESYESYES
ZedNOYESYES
Visual StudioYESNONO

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.

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

Third-Party Components

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

About

Windows/macOS/Linux GUI client for GIT users

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

SourceGit - Opensource Git GUI client.

starsforkslicenselatestdownloads

Highlights

  • Supports Windows/macOS/Linux
  • Opensource/Free
  • Fast
  • Deutsch/English/Español/Français/Italiano/Português/Русский/Українська/简体中文/繁體中文/日本語/தமிழ் (Tamil)
  • 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/Cherry-pick...
    • Amend/Reword/Squash
    • Interactive rebase
    • 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
  • Git command logs
  • Search commits
  • GitFlow
  • Git LFS
  • Bisect
  • Issue Link
  • Workspace
  • Custom Action
  • Using AI to generate commit message (C# port of anjerodev/commitollama)

Warning

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

Translation Status

You can find the current translation status in TRANSLATION.md

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 $"{System.Environment.SpecialFolder.ApplicationData}/SourceGit", which is platform-dependent, to store user settings, downloaded avatars and crash logs.

OSPATH
Windows%APPDATA%\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 Open Data Storage Directory.
  • You can create a data folder next to the SourceGit executable to force this app to store data (user settings, downloaded avatars and crash logs) into it (Portable-Mode). Only works on Windows.

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 scoop with follow commands:
    scoop bucket add extras
    scoop install sourcegit
  • Pre-built binaries can be found in Releases

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:

  • Thanks @aikawayataro for providing rpm and deb repositories, hosted on Codeberg.

    deb how to:

    curl https://codeberg.org/api/packages/yataro/debian/repository.key | sudo tee /etc/apt/keyrings/sourcegit.asc
    echo"deb [signed-by=/etc/apt/keyrings/sourcegit.asc, arch=amd64,arm64] https://codeberg.org/api/packages/yataro/debian generic main"| sudo tee /etc/apt/sources.list.d/sourcegit.list
    sudo apt update
    sudo apt install sourcegit

    rpm how to:

    curl https://codeberg.org/api/packages/yataro/rpm.repo | sed -e 's/gpgcheck=1/gpgcheck=0/'> sourcegit.repo
    # 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.

  • AppImage files can be found on AppImage hub, xdg-open (xdg-utils) 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 compatible HTTP API to generate commit message. You need configurate the service in Preference window.

For OpenAI:

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

For other AI service:

  • The Server should fill in a URL equivalent to OpenAI's https://api.openai.com/v1. For example, when using Ollama, it should be http://localhost:11434/v1 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.

ToolWindowsmacOSLinux
Visual Studio CodeYESYESYES
Visual Studio Code - InsidersYESYESYES
VSCodiumYESYESYES
FleetYESYESYES
Sublime TextYESYESYES
ZedNOYESYES
Visual StudioYESNONO

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.

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

Third-Party Components

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

About

Windows/macOS/Linux GUI client for GIT users

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

SourceGit - Opensource Git GUI client.

starsforkslicenselatestdownloads

Highlights

  • Supports Windows/macOS/Linux
  • Opensource/Free
  • Fast
  • Deutsch/English/Español/Français/Italiano/Português/Русский/Українська/简体中文/繁體中文/日本語/தமிழ் (Tamil)
  • 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/Cherry-pick...
    • Amend/Reword/Squash
    • Interactive rebase
    • 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
  • Git command logs
  • Search commits
  • GitFlow
  • Git LFS
  • Bisect
  • Issue Link
  • Workspace
  • Custom Action
  • Using AI to generate commit message (C# port of anjerodev/commitollama)

Warning

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

Translation Status

You can find the current translation status in TRANSLATION.md

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 $"{System.Environment.SpecialFolder.ApplicationData}/SourceGit", which is platform-dependent, to store user settings, downloaded avatars and crash logs.

OSPATH
Windows%APPDATA%\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 Open Data Storage Directory.
  • You can create a data folder next to the SourceGit executable to force this app to store data (user settings, downloaded avatars and crash logs) into it (Portable-Mode). Only works on Windows.

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 scoop with follow commands:
    scoop bucket add extras
    scoop install sourcegit
  • Pre-built binaries can be found in Releases

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:

  • Thanks @aikawayataro for providing rpm and deb repositories, hosted on Codeberg.

    deb how to:

    curl https://codeberg.org/api/packages/yataro/debian/repository.key | sudo tee /etc/apt/keyrings/sourcegit.asc
    echo"deb [signed-by=/etc/apt/keyrings/sourcegit.asc, arch=amd64,arm64] https://codeberg.org/api/packages/yataro/debian generic main"| sudo tee /etc/apt/sources.list.d/sourcegit.list
    sudo apt update
    sudo apt install sourcegit

    rpm how to:

    curl https://codeberg.org/api/packages/yataro/rpm.repo | sed -e 's/gpgcheck=1/gpgcheck=0/'> sourcegit.repo
    # 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.

  • AppImage files can be found on AppImage hub, xdg-open (xdg-utils) 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 compatible HTTP API to generate commit message. You need configurate the service in Preference window.

For OpenAI:

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

For other AI service:

  • The Server should fill in a URL equivalent to OpenAI's https://api.openai.com/v1. For example, when using Ollama, it should be http://localhost:11434/v1 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.

ToolWindowsmacOSLinux
Visual Studio CodeYESYESYES
Visual Studio Code - InsidersYESYESYES
VSCodiumYESYESYES
FleetYESYESYES
Sublime TextYESYESYES
ZedNOYESYES
Visual StudioYESNONO

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.

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

Third-Party Components

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

About

Windows/macOS/Linux GUI client for GIT users

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

SourceGit - Opensource Git GUI client.

starsforkslicenselatestdownloads

Highlights

  • Supports Windows/macOS/Linux
  • Opensource/Free
  • Fast
  • Deutsch/English/Español/Français/Italiano/Português/Русский/Українська/简体中文/繁體中文/日本語/தமிழ் (Tamil)
  • 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/Cherry-pick...
    • Amend/Reword/Squash
    • Interactive rebase
    • 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
  • Git command logs
  • Search commits
  • GitFlow
  • Git LFS
  • Bisect
  • Issue Link
  • Workspace
  • Custom Action
  • Using AI to generate commit message (C# port of anjerodev/commitollama)

Warning

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

Translation Status

You can find the current translation status in TRANSLATION.md

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 $"{System.Environment.SpecialFolder.ApplicationData}/SourceGit", which is platform-dependent, to store user settings, downloaded avatars and crash logs.

OSPATH
Windows%APPDATA%\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 Open Data Storage Directory.
  • You can create a data folder next to the SourceGit executable to force this app to store data (user settings, downloaded avatars and crash logs) into it (Portable-Mode). Only works on Windows.

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 scoop with follow commands:
    scoop bucket add extras
    scoop install sourcegit
  • Pre-built binaries can be found in Releases

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:

  • Thanks @aikawayataro for providing rpm and deb repositories, hosted on Codeberg.

    deb how to:

    curl https://codeberg.org/api/packages/yataro/debian/repository.key | sudo tee /etc/apt/keyrings/sourcegit.asc
    echo"deb [signed-by=/etc/apt/keyrings/sourcegit.asc, arch=amd64,arm64] https://codeberg.org/api/packages/yataro/debian generic main"| sudo tee /etc/apt/sources.list.d/sourcegit.list
    sudo apt update
    sudo apt install sourcegit

    rpm how to:

    curl https://codeberg.org/api/packages/yataro/rpm.repo | sed -e 's/gpgcheck=1/gpgcheck=0/'> sourcegit.repo
    # 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.

  • AppImage files can be found on AppImage hub, xdg-open (xdg-utils) 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 compatible HTTP API to generate commit message. You need configurate the service in Preference window.

For OpenAI:

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

For other AI service:

  • The Server should fill in a URL equivalent to OpenAI's https://api.openai.com/v1. For example, when using Ollama, it should be http://localhost:11434/v1 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.

ToolWindowsmacOSLinux
Visual Studio CodeYESYESYES
Visual Studio Code - InsidersYESYESYES
VSCodiumYESYESYES
FleetYESYESYES
Sublime TextYESYESYES
ZedNOYESYES
Visual StudioYESNONO

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.

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

Third-Party Components

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

About

Windows/macOS/Linux GUI client for GIT users

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

SourceGit - Opensource Git GUI client.

starsforkslicenselatestdownloads

Highlights

  • Supports Windows/macOS/Linux
  • Opensource/Free
  • Fast
  • Deutsch/English/Español/Français/Italiano/Português/Русский/Українська/简体中文/繁體中文/日本語/தமிழ் (Tamil)
  • 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/Cherry-pick...
    • Amend/Reword/Squash
    • Interactive rebase
    • 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
  • Git command logs
  • Search commits
  • GitFlow
  • Git LFS
  • Bisect
  • Issue Link
  • Workspace
  • Custom Action
  • Using AI to generate commit message (C# port of anjerodev/commitollama)

Warning

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

Translation Status

You can find the current translation status in TRANSLATION.md

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 $"{System.Environment.SpecialFolder.ApplicationData}/SourceGit", which is platform-dependent, to store user settings, downloaded avatars and crash logs.

OSPATH
Windows%APPDATA%\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 Open Data Storage Directory.
  • You can create a data folder next to the SourceGit executable to force this app to store data (user settings, downloaded avatars and crash logs) into it (Portable-Mode). Only works on Windows.

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 scoop with follow commands:
    scoop bucket add extras
    scoop install sourcegit
  • Pre-built binaries can be found in Releases

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:

  • Thanks @aikawayataro for providing rpm and deb repositories, hosted on Codeberg.

    deb how to:

    curl https://codeberg.org/api/packages/yataro/debian/repository.key | sudo tee /etc/apt/keyrings/sourcegit.asc
    echo"deb [signed-by=/etc/apt/keyrings/sourcegit.asc, arch=amd64,arm64] https://codeberg.org/api/packages/yataro/debian generic main"| sudo tee /etc/apt/sources.list.d/sourcegit.list
    sudo apt update
    sudo apt install sourcegit

    rpm how to:

    curl https://codeberg.org/api/packages/yataro/rpm.repo | sed -e 's/gpgcheck=1/gpgcheck=0/'> sourcegit.repo
    # 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.

  • AppImage files can be found on AppImage hub, xdg-open (xdg-utils) 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 compatible HTTP API to generate commit message. You need configurate the service in Preference window.

For OpenAI:

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

For other AI service:

  • The Server should fill in a URL equivalent to OpenAI's https://api.openai.com/v1. For example, when using Ollama, it should be http://localhost:11434/v1 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.

ToolWindowsmacOSLinux
Visual Studio CodeYESYESYES
Visual Studio Code - InsidersYESYESYES
VSCodiumYESYESYES
FleetYESYESYES
Sublime TextYESYESYES
ZedNOYESYES
Visual StudioYESNONO

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.

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

Third-Party Components

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

About

Windows/macOS/Linux GUI client for GIT users

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

SourceGit - Opensource Git GUI client.

starsforkslicenselatestdownloads

Highlights

  • Supports Windows/macOS/Linux
  • Opensource/Free
  • Fast
  • Deutsch/English/Español/Français/Italiano/Português/Русский/Українська/简体中文/繁體中文/日本語/தமிழ் (Tamil)
  • 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/Cherry-pick...
    • Amend/Reword/Squash
    • Interactive rebase
    • 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
  • Git command logs
  • Search commits
  • GitFlow
  • Git LFS
  • Bisect
  • Issue Link
  • Workspace
  • Custom Action
  • Using AI to generate commit message (C# port of anjerodev/commitollama)

Warning

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

Translation Status

You can find the current translation status in TRANSLATION.md

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 $"{System.Environment.SpecialFolder.ApplicationData}/SourceGit", which is platform-dependent, to store user settings, downloaded avatars and crash logs.

OSPATH
Windows%APPDATA%\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 Open Data Storage Directory.
  • You can create a data folder next to the SourceGit executable to force this app to store data (user settings, downloaded avatars and crash logs) into it (Portable-Mode). Only works on Windows.

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 scoop with follow commands:
    scoop bucket add extras
    scoop install sourcegit
  • Pre-built binaries can be found in Releases

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:

  • Thanks @aikawayataro for providing rpm and deb repositories, hosted on Codeberg.

    deb how to:

    curl https://codeberg.org/api/packages/yataro/debian/repository.key | sudo tee /etc/apt/keyrings/sourcegit.asc
    echo"deb [signed-by=/etc/apt/keyrings/sourcegit.asc, arch=amd64,arm64] https://codeberg.org/api/packages/yataro/debian generic main"| sudo tee /etc/apt/sources.list.d/sourcegit.list
    sudo apt update
    sudo apt install sourcegit

    rpm how to:

    curl https://codeberg.org/api/packages/yataro/rpm.repo | sed -e 's/gpgcheck=1/gpgcheck=0/'> sourcegit.repo
    # 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.

  • AppImage files can be found on AppImage hub, xdg-open (xdg-utils) 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 compatible HTTP API to generate commit message. You need configurate the service in Preference window.

For OpenAI:

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

For other AI service:

  • The Server should fill in a URL equivalent to OpenAI's https://api.openai.com/v1. For example, when using Ollama, it should be http://localhost:11434/v1 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.

ToolWindowsmacOSLinux
Visual Studio CodeYESYESYES
Visual Studio Code - InsidersYESYESYES
VSCodiumYESYESYES
FleetYESYESYES
Sublime TextYESYESYES
ZedNOYESYES
Visual StudioYESNONO

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.

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

Third-Party Components

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

About

Windows/macOS/Linux GUI client for GIT users

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

SourceGit - Opensource Git GUI client.

starsforkslicenselatestdownloads

Highlights

  • Supports Windows/macOS/Linux
  • Opensource/Free
  • Fast
  • Deutsch/English/Español/Français/Italiano/Português/Русский/Українська/简体中文/繁體中文/日本語/தமிழ் (Tamil)
  • 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/Cherry-pick...
    • Amend/Reword/Squash
    • Interactive rebase
    • 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
  • Git command logs
  • Search commits
  • GitFlow
  • Git LFS
  • Bisect
  • Issue Link
  • Workspace
  • Custom Action
  • Using AI to generate commit message (C# port of anjerodev/commitollama)

Warning

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

Translation Status

You can find the current translation status in TRANSLATION.md

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 $"{System.Environment.SpecialFolder.ApplicationData}/SourceGit", which is platform-dependent, to store user settings, downloaded avatars and crash logs.

OSPATH
Windows%APPDATA%\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 Open Data Storage Directory.
  • You can create a data folder next to the SourceGit executable to force this app to store data (user settings, downloaded avatars and crash logs) into it (Portable-Mode). Only works on Windows.

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 scoop with follow commands:
    scoop bucket add extras
    scoop install sourcegit
  • Pre-built binaries can be found in Releases

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:

  • Thanks @aikawayataro for providing rpm and deb repositories, hosted on Codeberg.

    deb how to:

    curl https://codeberg.org/api/packages/yataro/debian/repository.key | sudo tee /etc/apt/keyrings/sourcegit.asc
    echo"deb [signed-by=/etc/apt/keyrings/sourcegit.asc, arch=amd64,arm64] https://codeberg.org/api/packages/yataro/debian generic main"| sudo tee /etc/apt/sources.list.d/sourcegit.list
    sudo apt update
    sudo apt install sourcegit

    rpm how to:

    curl https://codeberg.org/api/packages/yataro/rpm.repo | sed -e 's/gpgcheck=1/gpgcheck=0/'> sourcegit.repo
    # 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.

  • AppImage files can be found on AppImage hub, xdg-open (xdg-utils) 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 compatible HTTP API to generate commit message. You need configurate the service in Preference window.

For OpenAI:

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

For other AI service:

  • The Server should fill in a URL equivalent to OpenAI's https://api.openai.com/v1. For example, when using Ollama, it should be http://localhost:11434/v1 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.

ToolWindowsmacOSLinux
Visual Studio CodeYESYESYES
Visual Studio Code - InsidersYESYESYES
VSCodiumYESYESYES
FleetYESYESYES
Sublime TextYESYESYES
ZedNOYESYES
Visual StudioYESNONO

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.

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

Third-Party Components

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

About

Windows/macOS/Linux GUI client for GIT users

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

SourceGit - Opensource Git GUI client.

starsforkslicenselatestdownloads

Highlights

  • Supports Windows/macOS/Linux
  • Opensource/Free
  • Fast
  • Deutsch/English/Español/Français/Italiano/Português/Русский/Українська/简体中文/繁體中文/日本語/தமிழ் (Tamil)
  • 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/Cherry-pick...
    • Amend/Reword/Squash
    • Interactive rebase
    • 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
  • Git command logs
  • Search commits
  • GitFlow
  • Git LFS
  • Bisect
  • Issue Link
  • Workspace
  • Custom Action
  • Using AI to generate commit message (C# port of anjerodev/commitollama)

Warning

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

Translation Status

You can find the current translation status in TRANSLATION.md

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 $"{System.Environment.SpecialFolder.ApplicationData}/SourceGit", which is platform-dependent, to store user settings, downloaded avatars and crash logs.

OSPATH
Windows%APPDATA%\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 Open Data Storage Directory.
  • You can create a data folder next to the SourceGit executable to force this app to store data (user settings, downloaded avatars and crash logs) into it (Portable-Mode). Only works on Windows.

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 scoop with follow commands:
    scoop bucket add extras
    scoop install sourcegit
  • Pre-built binaries can be found in Releases

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:

  • Thanks @aikawayataro for providing rpm and deb repositories, hosted on Codeberg.

    deb how to:

    curl https://codeberg.org/api/packages/yataro/debian/repository.key | sudo tee /etc/apt/keyrings/sourcegit.asc
    echo"deb [signed-by=/etc/apt/keyrings/sourcegit.asc, arch=amd64,arm64] https://codeberg.org/api/packages/yataro/debian generic main"| sudo tee /etc/apt/sources.list.d/sourcegit.list
    sudo apt update
    sudo apt install sourcegit

    rpm how to:

    curl https://codeberg.org/api/packages/yataro/rpm.repo | sed -e 's/gpgcheck=1/gpgcheck=0/'> sourcegit.repo
    # 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.

  • AppImage files can be found on AppImage hub, xdg-open (xdg-utils) 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 compatible HTTP API to generate commit message. You need configurate the service in Preference window.

For OpenAI:

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

For other AI service:

  • The Server should fill in a URL equivalent to OpenAI's https://api.openai.com/v1. For example, when using Ollama, it should be http://localhost:11434/v1 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.

ToolWindowsmacOSLinux
Visual Studio CodeYESYESYES
Visual Studio Code - InsidersYESYESYES
VSCodiumYESYESYES
FleetYESYESYES
Sublime TextYESYESYES
ZedNOYESYES
Visual StudioYESNONO

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.

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

Third-Party Components

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

About

Windows/macOS/Linux GUI client for GIT users

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages