GCOP (Git Copilot) is an intelligent assistant that enhances your Git workflow by automating commit message generation using AI. It's designed to make your development process smoother and more efficient by improving git commit practices, conventional commits, and version control. With GCOP, you can create better commit messages, maintain a clean git history, and streamline your git commit workflow.
- Smart Commit Messages: Let AI generate better commit messages based on your changes.
- Flexible AI Integration: Support any language model you want.
- Simplified Git Commands: Powerful aliases for common Git operations to speed up your workflow.
This video shows how to use gcop to generate a commit message. See the documentation
We recommend you to read the Quick Start Guide in detail.
- Python 3.8 or newer
- Git installed on your system
- An API key for your preferred LLM (e.g., OpenAI, Anthropic)
-
Install GCOP with pip:
pip install gcop
-
Initialize GCOP:
gcop init
This command sets up GCOP and adds its aliases to your Git configuration.
-
Configure your AI model:
git gconfig
This opens the configuration file. Edit it to include your AI provider details:
model: model_name: provider/name, eg openai/gpt-4o api_key: your_api_key
Then gcop will generate a config.yaml
, then gcop will open the config.yaml
file in the default editor, and you can config your language model. See how to
config your model here:
config.yaml
store path:
- Windows:
%USERPROFILE%\.zeeland\gcop\config.yaml
- Linux:
~/.zeeland/gcop/config.yaml
- MacOS:
~/.zeeland/gcop/config.yaml
-
Verify the installation:
git ghelp
You should see output similar to:
gcop is your local git command copilot Version: 1.0.0 GitHub: https://github.com/Undertone0809/gcop Usage: git [OPTIONS] COMMAND Commands: git p Push changes to remote repository git pf Force push changes to remote repository git undo Undo last commit, keep changes git ghelp Show this help message git gconfig Open config file in default editor git gcommit Generate AI commit message and commit changes git ac Add all changes and commit with AI message git c Shorthand for 'git gcommit'
After making changes to your project:
-
Stage your changes:
git add .
-
Generate and apply an AI commit message:
git c
Example output:
? Select a commit message to commit (Use arrow keys) Β» feat: Implement user authentication system docs: Update installation instructions in README fix: Resolve database connection timeout issue style: Improve code formatting in src/main.py retry
-
Choose the most appropriate message using arrow keys and press Enter.
-
git ac
: Add all changes and commit with an AI-generated messagegit ac
Output:
Changes added. Generating commit message... ? Select a commit message to commit (Use arrow keys) Β» feat: Add new user profile page fix: Correct CSS styling issues on mobile devices docs: Update API documentation for v2.0 refactor: Optimize database queries for better performance retry
-
git undo
: Undo the last commit while keeping changes stagedgit undo
Output:
HEAD is now at a1b2c3d Previous commit message Changes from the last commit are now staged.
-
git p
: Push to the current branchgit p
Output:
Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 8 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 328 bytes | 328.00 KiB/s, done. Total 3 (delta 2), reused 0 (delta 0), pack-reused 0 To https://github.com/username/repo.git a1b2c3d..e4f5g6h main -> main
-
git pf
: Force push to the current branch (use with caution) -
git gconfig
: Open the GCOP configuration file for adjustments
To modify your AI model settings:
-
Open the config file:
git gconfig
-
Edit the
config.yaml
file:model: model_name: provider/name, eg openai/gpt-4o api_key: your_api_key
-
Save and close the file.
Makefile
contains a lot of
functions for faster development.
Install all dependencies and pre-commit hooks
make install
Codestyle and type checks
Automatic formatting uses ruff
.
make polish-codestyle
# or use synonym
make formatting
Codestyle checks only, without rewriting files:
make check-codestyle
Note:
check-codestyle
usesruff
anddarglint
library
Code security
If this command is not selected during installation, it cannnot be used.
make check-safety
This command launches Poetry
integrity checks as well as identifies security issues
with Safety
and Bandit
.
make check-safety
Tests with coverage badges
Run pytest
make test
All linters
Of course there is a command to run all linters in one:
make lint
the same as:
make check-codestyle && make test && make check-safety
Docker
make docker-build
which is equivalent to:
make docker-build VERSION=latest
Remove docker image with
make docker-remove
More information about docker.
Cleanup
Delete pycache files
make pycache-remove
Remove package build
make build-remove
Delete .DS_STORE files
make dsstore-remove
Remove .mypycache
make mypycache-remove
Or to remove all above run:
make cleanup
- Promptulate: Large language model automation and Autonomous Language Agents development framework
- P3G: Python Packages Project Generator
This project is licensed under the terms of the MIT
license.
See LICENSE for more details.
For more information, please contact: zeeland4work@gmail.com
See anything changelog, describe the telegram channel
This project was generated with P3G