Skip to content
/ qgitc Public

A cross-platform Git GUI tool designed to simplify commit history exploration, blame tracking, committing changes, and resolving conflicts. Leverage AI for generating commit messages and performing code reviews.

License

Notifications You must be signed in to change notification settings

timxx/qgitc

Repository files navigation

QGitc

Build Status Unit Testing Coverage PyPI version Python version License

A cross-platform Git GUI tool designed to simplify commit history exploration, blame tracking, committing changes, and resolving conflicts. Leverage AI for generating commit messages and performing code reviews.

Screenshots

Main Window

Main Window

Blame Window

Blame

Commit Window

Commit

AI Assistant

AI Assistant

Merge Tool

Merge Tool

Features

  • Two branches view for easy comparing a conflict commit base on the file.
  • Visualize white spaces and carriage return for easy diff compare.
  • Syntax highlight for diff contents.
  • Filter logs by file path or commit pattern.
  • Copy commit summary as HTML format for pasting.
  • Custom pattern for creating links.
  • Collect conflict files for merging.
  • Launch specify merge tool for specify file suffix.
  • Builtin image diff tool for easy finding the difference.
  • Auto finding which commit cause conflicts.
  • File blame support
  • AI intergrated
  • Composite mode
  • AI-based commit
  • AI-based code review

Requirements

  • PySide6
  • git (command line)
  • chardet
  • pywin32
    • Optional for Windows if you want record the conflict log easily
  • pywpsrpc
    • Optional for Linux if you want record the conflict log easily
  • openpyxl
    • Optional if no pywin32/ pywpsrpc is available

Build & Run

  • Using source directly

    • Run python setup.py build to build the project
    • Run qgitc.py under project root directory.
  • Build from source

    • Run pip install . under project root directory to install qgitc, and then run qgitc command.
  • Install from pypi

    • pip install qgitc

Shell Integration

qgitc shell register
# to unregister, run:
qgitc shell unregister

# to use the source directly:
python qgitc.py shell register

# for Linux user
# if your file manager isn't the default one comes with desktop
# say your desktop is Ubuntu, but use thunar as default one
# use --file-manager to specify reigster for
qgitc shell register --file-manager=thunar

Icons

Most of the SVG icons come from Google Fonts.

Some were resized with Inkscape to match the size for QGitc.

About

A cross-platform Git GUI tool designed to simplify commit history exploration, blame tracking, committing changes, and resolving conflicts. Leverage AI for generating commit messages and performing code reviews.

Resources

License

Stars

Watchers

Forks

Packages

No packages published