Skip to main content

Automatically generate and commit changes using GitHub Copilot

Project description

git-copilot-commit

AI-powered Git commit assistant that generates conventional commit messages using GitHub Copilot.

Screenshot of git-copilot-commit in action

Features

  • Generates commit messages based on your staged changes
  • Supports multiple AI models: GPT-4, Claude, Gemini, and more
  • Allows editing of generated messages before committing
  • Follows the Conventional Commits standard

Installation

Install the tool using uv (recommended)

Install uv:

# On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh

# On Windows.
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

You can install and run the latest version of tool directly every time by invoking this one command:

# Install latest version into temporary environment and run --help
uvx git-copilot-commit --help

Alternatively, you can install into a global isolated environment and run git-copilot-commit:

# Install into global isolated environment
uv tool install git-copilot-commit

# Run --help to see available commands
git-copilot-commit --help

Install with pipx

If you prefer to use pipx:

pipx install git-copilot-commit

Prerequisites

  • Active GitHub Copilot subscription

Quick Start

  1. Authenticate with GitHub Copilot:

    uvx git-copilot-commit authenticate
    

    If your cached GitHub token is revoked or expires, refresh it with:

    uvx git-copilot-commit authenticate --force
    
  2. Make changes in your repository.

  3. Generate and commit:

    uvx git-copilot-commit commit
    # Or, if you want to stage all files and accept the generated commit message, use:
    uvx git-copilot-commit commit --all --yes
    

Usage

Commit changes

$ uvx git-copilot-commit commit --help
Usage: git-copilot-commit commit [OPTIONS]

  Automatically commit changes in the current git repository.

Options:
  -a, --all         Stage all files before committing
  --split           Split staged hunks into multiple commits. Use
                    `--split=N` to prefer up to N commits.
  -m, --model TEXT  Model to use for generating commit message
  -y, --yes         Automatically accept the generated commit message
  --help            Show this message and exit.

Examples

Commit all changes:

uvx git-copilot-commit commit --all

Accept the generated commit message without editing:

uvx git-copilot-commit commit --yes

Use a specific model:

uvx git-copilot-commit commit --model claude-3.5-sonnet

Split staged hunks into separate commits:

uvx git-copilot-commit commit --split

Prefer up to two commits:

uvx git-copilot-commit commit --split 2

Commit Message Format

Follows Conventional Commits:

<type>[optional scope]: <description>

Types:

  • feat: New feature
  • fix: Bug fix
  • docs: Documentation
  • style: Formatting only
  • refactor: Code restructure
  • perf: Performance
  • test: Tests
  • chore: Maintenance
  • revert: Revert changes

Git Configuration

Add a git alias by adding the following to your ~/.gitconfig:

[alias]
    ai-commit = "!f() { uvx git-copilot-commit commit $@; }; f"

Now you can run to review the message before committing:

git ai-commit

Alternatively, you can stage all files and auto accept the commit message and specify which model should be used to generate the commit in one CLI invocation.

git ai-commit --all --yes --model claude-3.5-sonnet

[!TIP]

Show more context in diffs by running the following command:

git config --global diff.context 3

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

git_copilot_commit-0.5.0.tar.gz (51.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

git_copilot_commit-0.5.0-py3-none-any.whl (33.6 kB view details)

Uploaded Python 3

File details

Details for the file git_copilot_commit-0.5.0.tar.gz.

File metadata

  • Download URL: git_copilot_commit-0.5.0.tar.gz
  • Upload date:
  • Size: 51.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for git_copilot_commit-0.5.0.tar.gz
Algorithm Hash digest
SHA256 442e64c120ccf5c7cefa4b7d2cf37f9e584e6ea3db855d08c623976e12dbb5b3
MD5 4d0f9acde0ebb9d2ba55c1adcbf2292e
BLAKE2b-256 c39619c5698771becd8bc64c3104bc482f7c09f3ef93eb70f55113d87d1977f7

See more details on using hashes here.

File details

Details for the file git_copilot_commit-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: git_copilot_commit-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 33.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for git_copilot_commit-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e1a04611bf77cc9e1adb77af0ddeb4b6b5bd9830352be8d45071108e1472e89f
MD5 225e842854540eb71a2c06db8e8294f1
BLAKE2b-256 305c2f2a6d00dd86c3a48a26d4b69344ae437d1b9d3454b02d62b40c9d4a923f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page