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, rename, and delete branches and tags. Create lightweight and annotated tags directly from any commit in the history log.
- 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.
Check out our ROADMAP.md for upcoming features, development plans, and release milestones.
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.
