qgitc


Nameqgitc JSON
Version 5.8.2 PyPI version JSON
download
home_pageNone
SummaryA cross-platform Git GUI tool
upload_time2025-07-27 06:39:27
maintainerNone
docs_urlNone
authorNone
requires_python>=3.6
licenseNone
keywords git conflict viewer blame ai llm log commit code review
VCS
bugtrack_url
requirements PySide6-Essentials chardet psutil packaging opentelemetry-api opentelemetry-sdk opentelemetry-exporter-otlp-proto-http pygit2 setuptools setuptools_scm wheel isort
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # QGitc

[![Build Status](https://github.com/timxx/qgitc/actions/workflows/main.yml/badge.svg)](https://github.com/timxx/qgitc/actions)
[![Unit Testing](https://github.com/timxx/qgitc/actions/workflows/tests.yml/badge.svg)](https://github.com/timxx/qgitc/actions)
[![Coverage](https://timxx.github.io/qgitc/badges/coverage.svg)](https://github.com/timxx/qgitc/actions)
[![PyPI version](https://img.shields.io/pypi/v/qgitc.svg)](https://pypi.org/project/qgitc)
[![Python version](https://img.shields.io/pypi/pyversions/qgitc.svg)](https://pypi.org/project/qgitc)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](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](https://raw.githubusercontent.com/timxx/qgitc/refs/heads/master/screenshots/main.png)

### Blame Window
![Blame](https://raw.githubusercontent.com/timxx/qgitc/refs/heads/master/screenshots/blame.png)

### Commit Window
![Commit](https://raw.githubusercontent.com/timxx/qgitc/refs/heads/master/screenshots/commit.png)

### AI Assistant
![AI Assistant](https://raw.githubusercontent.com/timxx/qgitc/refs/heads/master/screenshots/assistant.png)

### Merge Tool
![Merge Tool](https://raw.githubusercontent.com/timxx/qgitc/refs/heads/master/screenshots/resolve.png)

## Features

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


## Requirements

- `pip install -r requirements.txt`
- git (command line)
- 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

``` sh
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](./qgitc/data/icons/) come from [Google Fonts](https://fonts.google.com/icons).

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

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "qgitc",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": "git, conflict, viewer, blame, ai, llm, log, commit, code review",
    "author": null,
    "author_email": "Weitian Leung <weitianleung@gmail.com>",
    "download_url": null,
    "platform": null,
    "description": "# QGitc\n\n[![Build Status](https://github.com/timxx/qgitc/actions/workflows/main.yml/badge.svg)](https://github.com/timxx/qgitc/actions)\n[![Unit Testing](https://github.com/timxx/qgitc/actions/workflows/tests.yml/badge.svg)](https://github.com/timxx/qgitc/actions)\n[![Coverage](https://timxx.github.io/qgitc/badges/coverage.svg)](https://github.com/timxx/qgitc/actions)\n[![PyPI version](https://img.shields.io/pypi/v/qgitc.svg)](https://pypi.org/project/qgitc)\n[![Python version](https://img.shields.io/pypi/pyversions/qgitc.svg)](https://pypi.org/project/qgitc)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)\n\n\nA 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.\n\n\n## Screenshots\n\n### Main Window\n![Main Window](https://raw.githubusercontent.com/timxx/qgitc/refs/heads/master/screenshots/main.png)\n\n### Blame Window\n![Blame](https://raw.githubusercontent.com/timxx/qgitc/refs/heads/master/screenshots/blame.png)\n\n### Commit Window\n![Commit](https://raw.githubusercontent.com/timxx/qgitc/refs/heads/master/screenshots/commit.png)\n\n### AI Assistant\n![AI Assistant](https://raw.githubusercontent.com/timxx/qgitc/refs/heads/master/screenshots/assistant.png)\n\n### Merge Tool\n![Merge Tool](https://raw.githubusercontent.com/timxx/qgitc/refs/heads/master/screenshots/resolve.png)\n\n## Features\n\n- [x] Two branches view for easy comparing a conflict commit base on the file.\n- [x] Visualize white spaces and carriage return for easy diff compare.\n- [x] Syntax highlight for diff contents.\n- [x] Filter logs by file path or commit pattern.\n- [x] Copy commit summary as HTML format for pasting.\n- [x] Custom pattern for creating links.\n- [x] Collect conflict files for merging.\n- [x] Launch specify merge tool for specify file suffix.\n- [x] Builtin image diff tool for easy finding the difference.\n- [ ] Auto finding which commit cause conflicts.\n- [x] File blame support\n- [x] AI intergrated\n- [x] Composite mode\n- [x] AI-based commit\n- [x] AI-based code review\n\n\n## Requirements\n\n- `pip install -r requirements.txt`\n- git (command line)\n- pywin32\n  - Optional for Windows if you want record the conflict log easily\n- pywpsrpc\n  - Optional for Linux if you want record the conflict log easily\n- openpyxl\n  - Optional if no pywin32/ pywpsrpc is available\n\n\n## Build & Run\n\n- Using source directly\n  - Run **python setup.py build** to build the project\n  - Run **qgitc.py** under project root directory.\n\n- Build from source\n  - Run *pip install .* under project root directory to install qgitc, and then run *qgitc* command.\n\n- Install from pypi\n  - pip install qgitc\n\n\n## Shell Integration\n\n``` sh\nqgitc shell register\n# to unregister, run:\nqgitc shell unregister\n\n# to use the source directly:\npython qgitc.py shell register\n\n# for Linux user\n# if your file manager isn't the default one comes with desktop\n# say your desktop is Ubuntu, but use thunar as default one\n# use --file-manager to specify reigster for\nqgitc shell register --file-manager=thunar\n```\n\n## Icons\n\nMost of the [SVG icons](./qgitc/data/icons/) come from [Google Fonts](https://fonts.google.com/icons).\n\nSome were resized with Inkscape to match the size for QGitc.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A cross-platform Git GUI tool",
    "version": "5.8.2",
    "project_urls": {
        "Homepage": "https://github.com/timxx/qgitc",
        "Issues": "https://github.com/timxx/qgitc/issues",
        "Repository": "https://github.com/timxx/qgitc.git"
    },
    "split_keywords": [
        "git",
        " conflict",
        " viewer",
        " blame",
        " ai",
        " llm",
        " log",
        " commit",
        " code review"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "72a49b4ca92293787d59f1743b75da0eab9fc454ff158fc3267b86c7d4c1fc9e",
                "md5": "d05f7d82ce5ea70420e1283f51e6c654",
                "sha256": "d996e72076d9bc4827e7bbf1318c259b07bcaf67c647a53ab048c96a50414653"
            },
            "downloads": -1,
            "filename": "qgitc-5.8.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d05f7d82ce5ea70420e1283f51e6c654",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 288157,
            "upload_time": "2025-07-27T06:39:27",
            "upload_time_iso_8601": "2025-07-27T06:39:27.724949Z",
            "url": "https://files.pythonhosted.org/packages/72/a4/9b4ca92293787d59f1743b75da0eab9fc454ff158fc3267b86c7d4c1fc9e/qgitc-5.8.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-27 06:39:27",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "timxx",
    "github_project": "qgitc",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "PySide6-Essentials",
            "specs": []
        },
        {
            "name": "chardet",
            "specs": []
        },
        {
            "name": "psutil",
            "specs": []
        },
        {
            "name": "packaging",
            "specs": []
        },
        {
            "name": "opentelemetry-api",
            "specs": []
        },
        {
            "name": "opentelemetry-sdk",
            "specs": []
        },
        {
            "name": "opentelemetry-exporter-otlp-proto-http",
            "specs": []
        },
        {
            "name": "pygit2",
            "specs": []
        },
        {
            "name": "setuptools",
            "specs": [
                [
                    ">=",
                    "77"
                ]
            ]
        },
        {
            "name": "setuptools_scm",
            "specs": [
                [
                    ">=",
                    "8"
                ]
            ]
        },
        {
            "name": "wheel",
            "specs": []
        },
        {
            "name": "isort",
            "specs": []
        }
    ],
    "lcname": "qgitc"
}
        
Elapsed time: 2.12712s