2024-03-31 01:54:29 -07:00
# SourceGit
Opensource Git GUI client.
## Highlights
* Supports Windows/macOS/Linux
* Opensource/Free
* Fast
2024-06-05 19:41:22 -07:00
* English/简体中文/繁體中文
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...
* Branches
* Remotes
* Tags
* Stashes
* Submodules
* Archive
* Diff
* Save as patch/apply
* File histories
* Blame
* Revision Diffs
2024-06-13 02:08:38 -07:00
* Branch Diff
* Image Diff
2024-03-31 01:54:29 -07:00
* GitFlow support
2024-06-17 03:32:42 -07:00
* Git LFS support
2024-03-31 01:54:29 -07:00
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-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-04-24 07:07:48 -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.
| OS | PATH |
| --- | --- |
| Windows | `C:\Users\USER_NAME\AppData\Roaming\SourceGit` |
2024-05-15 02:14:13 -07:00
| Linux | `${HOME}/.config/SourceGit` |
| macOS | `${HOME}/Library/Application Support/SourceGit` |
2024-04-24 07:07:48 -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-04-16 02:29:36 -07:00
* `sourcegit_x.y.win-x64.zip` may be reported as virus by Windows Defender. I don't know why. I have manually tested the zip to be uploaded using Windows Defender before uploading and no virus was found. If you have installed .NET 8 SDK locally, I suggest you to compile it yourself. And if you have any idea about how to fix this, please open an issue.
2024-03-31 18:29:04 -07:00
2024-03-31 01:54:29 -07:00
For **macOS** users:
2024-04-16 02:29:36 -07:00
* Download `sourcegit_x.y.osx-x64.zip` or `sourcegit_x.y.osx-arm64.zip` from Releases. `x64` for Intel and `arm64` for Apple Silicon.
2024-03-31 01:54:29 -07:00
* 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 ](https://github.com/git-ecosystem/git-credential-manager/releases ) 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:
* `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-03-31 01:54:29 -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-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-04-08 02:39:52 -07:00
| Tool | Windows | macOS | Linux | Environment Variable |
2024-04-05 22:14:22 -07:00
| --- | --- | --- | --- | --- |
| Visual Studio Code | YES | YES | YES | VSCODE_PATH |
| Visual Studio Code - Insiders | YES | YES | YES | VSCODE_INSIDERS_PATH |
2024-05-03 07:02:19 -07:00
| VSCodium | YES | YES | YES | VSCODIUM_PATH |
2024-04-05 22:14:22 -07:00
| JetBrains Fleet | YES | YES | YES | FLEET_PATH |
2024-04-06 00:31:13 -07:00
| Sublime Text | YES | YES | YES | SUBLIME_TEXT_PATH |
2024-04-05 22:14:22 -07:00
2024-04-27 07:12:31 -07:00
> * You can set the given environment variable for special tool if it can NOT be found by this app automatically.
> * Installing `JetBrains Toolbox` will help this app to find other JetBrains tools installed on your device.
2024-06-03 20:13:19 -07:00
> * On macOS, you may need to use `launchctl setenv` to make sure the app can read these environment variables.
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
![Theme Dark ](./screenshots/theme_dark.png )
* Light Theme
![Theme Light ](./screenshots/theme_light.png )
2024-06-13 02:08:38 -07:00
## How to Customize Theme
1. Create a new json file, and provide your favorite colors with follow keys:
| Key | Description |
| --- | --- |
| Color.Window | Window background color |
2024-06-15 00:10:40 -07:00
| Color.WindowBorder | Window border color. Only used on Linux. |
2024-06-13 02:08:38 -07:00
| Color.TitleBar | Title bar background color |
| Color.ToolBar | Tool bar background color |
| Color.Popup | Popup panel background color |
| Color.Contents | Background color used in inputs, data grids, file content viewer, change lists, text diff viewer, etc. |
| Color.Badage | Badage background color |
| Color.Conflict | Conflict panel background color |
| Color.ConflictForeground | Conflict panel foreground color |
| Color.Border0 | Border color used in some controls, like Window, Tab, Toolbar, etc. |
| Color.Border1 | Border color used in inputs, like TextBox, ComboBox, etc. |
| Color.Border2 | Border color used in visual lines, like seperators, Rectange, etc. |
| Color.FlatButton.Background | Flat button background color, like `Cancel` , `Commit & Push` button |
| Color.FlatButton.BackgroundHovered | Flat button background color when hovered, like `Cancel` button |
| Color.FlatButton.PrimaryBackground | Primary flat button background color, like `Ok` , `Commit` button |
| Color.FlatButton.PrimaryBackgroundHovered | Primary flat button background color when hovered, like `Ok` , `Commit` button |
| Color.FG1 | Primary foreground color for all text elements |
| Color.FG2 | Secondary foreground color for all text elements |
| Color.Diff.EmptyBG | Background color used in empty lines in diff viewer |
| Color.Diff.AddedBG | Background color used in added lines in diff viewer |
| Color.Diff.DeletedBG | Background color used in deleted lines in diff viewer |
| Color.Diff.AddedHighlight | Background color used for changed words in added lines in diff viewer |
| Color.Diff.DeletedHighlight | Background color used for changed words in deleted lines in diff viewer |
For example:
```json
{
"Color.Window": "#FFFF6059"
}
```
2. Open `Preference` -> `Appearance` , choose the json file you just created in `Custom Color Schema` .
> **NOTE**: The `Custom Color Schema` will override the colors with same keys in current active theme.
2024-03-31 01:54:29 -07:00
## Contributing
Thanks to all the people who contribute.
2024-06-02 23:53:52 -07:00
[![Contributors ](https://contrib.rocks/image?repo=sourcegit-scm/sourcegit&columns=10 )](https://github.com/sourcegit-scm/sourcegit/graphs/contributors)