GitMaster is a powerful, lightweight Git GUI client built with C++, Qt6, and libgit2. It provides an intuitive interface for managing your Git repositories, aimed at developers who want a fast and responsive tool for their daily workflow.
- Repository Management: Initialize new repositories, clone existing ones, and manage your local projects.
- Branching & Tagging: Create, switch, and manage branches and tags with ease.
- Remote Operations: Seamlessly Fetch, Pull, and Push to remote servers.
- History Visualization: Browse commit history with a clear and detailed log table.
- Integrated Diff Viewer: View line-by-line changes with integrated diff highlighting.
- Staging Area: Easily stage and unstage files for your next commit.
- Cross-Platform: Designed for Linux, with support for Windows and macOS.
To build GitMaster from source, you will need:
- C++ Compiler: Supporting C++20 (e.g., GCC 10+, Clang 10+, or MSVC 2019+).
- CMake: Version 3.12 or higher.
- Qt6: Following modules are required:
- Gui
- Widgets
- Network
- Svg
- libgit2: Development files for the libgit2 library.
-
Clone the repository:
git clone https://github.com/bokic/gitmaster.git cd gitmaster -
Create a build directory:
mkdir build && cd build
-
Run CMake:
cmake ..
-
Compile:
make -j$(nproc)
GitMaster is available in the Arch User Repository (AUR). Arch users can install it using an AUR helper like yay:
yay -S gitmasterYou can use the provided batch scripts in the windows directory:
windows/build_deps.bat: Builds dependencies.windows/build.bat: Builds the application.windows/build_installer.bat: Generates an installer using Inno Setup.
Alternatively, you can use CMake directly with a generator like Visual Studio or MinGW.
On Linux, you can install GitMaster to your system using:
sudo make installThis will install the binary and the .desktop file for system integration.
This project is licensed under the GNU Lesser General Public License v3.0 - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request or open an Issue for any bugs or feature requests.
