2024-10-21 20:21:07 -07:00
# SourceGit - Opensource Git GUI client.
2024-03-31 01:54:29 -07:00
2024-10-27 18:45:16 -07:00
[![stars ](https://img.shields.io/github/stars/sourcegit-scm/sourcegit.svg )](https://github.com/sourcegit-scm/sourcegit/stargazers)
[![forks ](https://img.shields.io/github/forks/sourcegit-scm/sourcegit.svg )](https://github.com/sourcegit-scm/sourcegit/forks)
[![license ](https://img.shields.io/github/license/sourcegit-scm/sourcegit.svg )](LICENSE)
[![latest ](https://img.shields.io/github/v/release/sourcegit-scm/sourcegit.svg )](https://github.com/sourcegit-scm/sourcegit/releases/latest)
[![downloads ](https://img.shields.io/github/downloads/sourcegit-scm/sourcegit/total )](https://github.com/sourcegit-scm/sourcegit/releases)
2024-03-31 01:54:29 -07:00
## Highlights
* Supports Windows/macOS/Linux
* Opensource/Free
* Fast
2024-11-27 17:48:07 -08:00
* Deutsch/English/Español/Français/Italiano/Português/Русский/简体中文/繁體中文
2024-03-31 01:54:29 -07:00
* Built-in light/dark themes
2024-06-13 02:08:38 -07:00
* Customize theme
2024-03-31 01:54:29 -07:00
* Visual commit graph
* Supports SSH access with each remote
* GIT commands with GUI
* Clone/Fetch/Pull/Push...
2024-06-20 02:08:29 -07:00
* Merge/Rebase/Reset/Revert/Amend/Cherry-pick...
2024-08-05 20:53:33 -07:00
* Amend/Reword
2024-06-20 02:08:29 -07:00
* Interactive rebase (Basic)
2024-03-31 01:54:29 -07:00
* Branches
* Remotes
* Tags
* Stashes
* Submodules
2024-06-27 03:25:16 -07:00
* Worktrees
2024-03-31 01:54:29 -07:00
* Archive
* Diff
* Save as patch/apply
* File histories
* Blame
* Revision Diffs
2024-06-13 02:08:38 -07:00
* Branch Diff
2024-06-21 20:51:58 -07:00
* Image Diff - Side-By-Side/Swipe/Blend
2024-10-11 19:56:10 -07:00
* Search commits
2024-08-05 20:53:33 -07:00
* GitFlow
* Git LFS
* Issue Link
2024-09-09 04:46:14 -07:00
* Workspace
2024-09-11 03:22:05 -07:00
* Using AI to generate commit message (C# port of [anjerodev/commitollama ](https://github.com/anjerodev/commitollama ))
2024-03-31 01:54:29 -07:00
2024-08-14 23:39:41 -07:00
> [!WARNING]
2024-06-18 06:12:23 -07:00
> **Linux** only tested on **Debian 12** on both **X11** & **Wayland**.
2024-03-31 01:54:29 -07:00
2024-10-24 23:22:38 -07:00
## Translation Status
2024-12-18 02:54:50 -08:00
[![en_US ](https://img.shields.io/badge/en__US-100%25-brightgreen )](TRANSLATION.md) [![de__DE ](https://img.shields.io/badge/de__DE-100.00%25-brightgreen )](TRANSLATION.md) [![es__ES ](https://img.shields.io/badge/es__ES-97.78%25-yellow )](TRANSLATION.md) [![fr__FR ](https://img.shields.io/badge/fr__FR-95.00%25-yellow )](TRANSLATION.md) [![it__IT ](https://img.shields.io/badge/it__IT-95.56%25-yellow )](TRANSLATION.md) [![pt__BR ](https://img.shields.io/badge/pt__BR-96.81%25-yellow )](TRANSLATION.md) [![ru__RU ](https://img.shields.io/badge/ru__RU-100.00%25-brightgreen )](TRANSLATION.md) [![zh__CN ](https://img.shields.io/badge/zh__CN-100.00%25-brightgreen )](TRANSLATION.md) [![zh__TW ](https://img.shields.io/badge/zh__TW-100.00%25-brightgreen )](TRANSLATION.md)
2024-10-24 23:22:38 -07:00
2024-04-24 07:07:48 -07:00
## How to Use
2024-03-31 01:54:29 -07:00
2024-04-17 18:38:28 -07:00
**To use this tool, you need to install Git(>=2.23.0) first.**
2024-03-31 01:54:29 -07:00
2024-04-02 05:05:33 -07:00
You can download the latest stable from [Releases ](https://github.com/sourcegit-scm/sourcegit/releases/latest ) or download workflow artifacts from [Github Actions ](https://github.com/sourcegit-scm/sourcegit/actions ) to try this app based on latest commits.
2024-03-31 01:54:29 -07:00
2024-07-21 03:05:50 -07:00
This software creates a folder `$"{System.Environment.SpecialFolder.ApplicationData}/SourceGit"` , which is platform-dependent, to store user settings, downloaded avatars and crash logs.
2024-04-24 07:07:48 -07:00
2024-08-12 06:29:18 -07:00
| OS | PATH |
|---------|-----------------------------------------------------|
| Windows | `C:\Users\USER_NAME\AppData\Roaming\SourceGit` |
2024-08-12 19:19:16 -07:00
| Linux | `${HOME}/.config/SourceGit` or `${HOME}/.sourcegit` |
2024-08-12 06:29:18 -07:00
| macOS | `${HOME}/Library/Application Support/SourceGit` |
2024-04-24 07:07:48 -07:00
2024-08-14 23:39:41 -07:00
> [!TIP]
2024-12-23 17:23:50 -08:00
> You can open this data storage directory from the main menu.
2024-08-14 23:39:41 -07:00
2024-03-31 18:29:04 -07:00
For **Windows** users:
2024-04-02 05:05:33 -07:00
* **MSYS Git is NOT supported**. Please use official [Git for Windows ](https://git-scm.com/download/win ) instead.
2024-07-21 03:05:50 -07:00
* You can install the latest stable from `winget` with follow commands:
```shell
winget install SourceGit
```
2024-08-15 01:02:38 -07:00
> [!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.
2024-07-21 03:05:50 -07:00
* You can install the latest stable by `scoope` with follow commands:
```shell
scoop bucket add extras
scoop install sourcegit
```
2024-12-23 17:23:50 -08:00
* Pre-built binaries can be found in [Releases ](https://github.com/sourcegit-scm/sourcegit/releases/latest )
* 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.
2024-03-31 18:29:04 -07:00
2024-03-31 01:54:29 -07:00
For **macOS** users:
2024-10-28 01:37:57 -07:00
* Thanks [@ybeapps ](https://github.com/ybeapps ) for making `SourceGit` available on `Homebrew` . You can simply install it with following command:
```shell
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:
```shell
sudo xattr -cr /Applications/SourceGit.app
```
2024-03-31 01:54:29 -07:00
* Make sure [git-credential-manager ](https://github.com/git-ecosystem/git-credential-manager/releases ) is installed on your mac.
2024-10-21 05:28:39 -07:00
* You can run `echo $PATH > ~/Library/Application\ Support/SourceGit/PATH` to generate a custom PATH env file to introduce `PATH` env to SourceGit.
2024-03-31 01:54:29 -07:00
For **Linux** users:
2024-12-09 17:27:26 -08:00
* 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:
```shell
apt update & & apt install curl gpg -y
```
Install the registry signing key:
```shell
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:
```shell
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:
```shell
apt update & & apt install sourcegit
```
* For RHEL/Fedora based distributions, you can add the `sourcegit` repository by following:
Configure the source:
```shell
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:
```shell
sudo dnf install -y sourcegit
```
2024-12-09 17:26:15 -08:00
* `Appimage` files can be found on [AppimageHub ](https://appimage.github.io/SourceGit/ )
2024-03-31 01:54:29 -07:00
* `xdg-open` must be installed to support open native file manager.
2024-04-17 18:38:28 -07:00
* Make sure [git-credential-manager ](https://github.com/git-ecosystem/git-credential-manager/releases ) is installed on your linux.
2024-09-11 05:32:10 -07:00
* Maybe you need to set environment variable `AVALONIA_SCREEN_SCALE_FACTORS` . See https://github.com/AvaloniaUI/Avalonia/wiki/Configuring-X11-per-monitor-DPI.
2024-11-21 17:17:56 -08:00
* If you can NOT type accented characters, such as `ê` , `ó` , try to set the environment variable `AVALONIA_IM_MODULE` to `none` .
2024-03-31 01:54:29 -07:00
2024-09-13 05:46:00 -07:00
## 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:
2024-09-18 23:41:59 -07:00
* 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`
2024-09-13 05:46:00 -07:00
* The `API Key` is optional that depends on the service
2024-04-08 02:39:52 -07:00
## External Tools
2024-04-02 21:17:20 -07:00
2024-04-08 02:39:52 -07:00
This app supports open repository in external tools listed in the table below.
2024-04-05 22:14:22 -07:00
2024-11-03 18:02:20 -08:00
| 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 |
2024-08-14 20:32:02 -07:00
> [!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.
2024-12-23 17:23:50 -08:00
> 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:
2024-08-14 20:32:02 -07:00
```json
{
"tools": {
2024-11-03 18:02:20 -08:00
"Visual Studio Code": "D:\\VSCode\\Code.exe"
2024-08-14 20:32:02 -07:00
}
}
```
> [!NOTE]
> This app also supports a lot of `JetBrains` IDEs, installing `JetBrains Toolbox` will help this app to find them.
2024-04-02 21:17:20 -07:00
2024-04-08 02:39:52 -07:00
## Screenshots
2024-03-31 01:54:29 -07:00
* Dark Theme
2024-07-21 03:08:55 -07:00
![Theme Dark ](./screenshots/theme_dark.png )
2024-03-31 01:54:29 -07:00
* Light Theme
2024-07-21 03:08:55 -07:00
![Theme Light ](./screenshots/theme_light.png )
2024-03-31 01:54:29 -07:00
2024-07-21 03:08:55 -07:00
* Custom
2024-06-13 02:08:38 -07:00
2024-08-22 20:57:17 -07:00
You can find custom themes from [sourcegit-theme ](https://github.com/sourcegit-scm/sourcegit-theme.git ). And welcome to share your own themes.
2024-06-13 02:08:38 -07:00
2024-03-31 01:54:29 -07:00
## Contributing
2024-07-31 18:57:03 -07:00
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` .
2024-03-31 01:54:29 -07:00
Thanks to all the people who contribute.
2024-10-29 22:07:30 -07:00
[![Contributors ](https://contrib.rocks/image?repo=sourcegit-scm/sourcegit&columns=20 )](https://github.com/sourcegit-scm/sourcegit/graphs/contributors)