GitQlient, pronounced as git+client (/gɪtˈklaɪənt/) is a multi-platform Git client originally forked from QGit. Nowadays it just keeps some old functionality to store the data that is used to later paint the repo tree.
GitQlient is not only a refactor of the UI but it also does a big refactor on the core parts. The original plan was to modernize the UI, move to C++17 standard and remove old bad practices to be compliant with the C++ Guidelines.
Following there are some of the new features:
- Better UI experience
- Easy access to the main Git actions
- Better code separation between Views and Models
- Simplification of the different options we have keeping it to what a Git client is
- New features:
- Easy access to remote actions like: push, pull, submodules management and branches
- Branches management
- Tags and stashes management
- Submodules handling
- Allow to open several repositories in the same window
- Better visualization of the commits and the work in progress
- Better visualization of the repository view
Here are some screenshots of the first release to show you how it looks like. The main window is formed by the repository graph, information about the branches, tags and submodules, and detailed description of a commit or the current work in progress:
By using the context menu over or with double-clicking the file name in the commit info panel or in the work in progress panel, you will be able to see the diff of that specific file. By the other hand, if you double-click commit or go through the context menu of the repository view, you can have a diff of a commit compared to its parent. If you want to compare two different commits, just select them and check the Diff option in the context menu:
Another important screen is the History&Blame window. There you can follow the history of a file, and blame it through it:
GitQlient is always under development, but you can find the releases in the Releases page.
It is planned to release for Linux, MacOs and Windows. However, take into account that the development environment is based on Linux and it will be the first platform released.
GitQlient can be executed from command line with additional params. Please take a look to the following table:
Command | Desciption |
---|---|
-noLog | Disables the log system for the current execution |
-logLevel | Sets the log level for GitQlient. It expects a numeric: 0 (Trace), 1 (Debug), 2 (Info), 3 (Warning), 4 (Error) and 5 (Fatal). |
-repos | Provides a list separated with blank spaces for the different repositories that will be open at startup. Ex: -repos /path/to/repo1 /path/to/repo2 |
GitQlient is really easy to set up and build. You just need to follow the guide.
The current contribution guidelines are in progress. They will be updated in its own guideline.
GitQlient started as a fork from QGit. Despite it has changed a lot, there is some of the original code still, mainly the Git core functionality.
Even when is 100% transformed is nice to thanks those that make the original QGit possible. Please check the QGit contributors list on GitHub!
The app icon is custom made, but the other in-app icons are made by Dave Gandy from FontAwesome.
GitQlient is released under LGPLv2+. However some parts of the old QGit are GPLv2 so for the moment the code is stacked with that.
If you are interested, here is the license