几个月前,受到一篇推文的启发 https://x.com/mtrainier2020/status/1802941902964277379 ,我突然想到可以借助 git alias 添加一些小命令,加速我的 git workflow 流程,于是我花了两个小时的时间进行工程封装,并发布了 pypi 包,并分享到了 V2EX 上: https://www.v2ex.com/t/1052254 。
几个月来,我一直在维护这个框架,gcop 是一个智能的 AI copilot ,旨在帮助开发者撰写更好的 git commit message ,同时加速 git workflow 。
官网: https://gcop.zeeland.top/
Github: https://github.com/undertone0809/gcop
gcop 具有以下优点:
- 配置简单,
<font style="color:rgb(0, 0, 0);">pip install gcop -U</font>
之后,简单配置完自己的模型就能直接使用 AI 生成你的 commit - 兼容市面上的几乎所有模型,底层基于promptulate 构建,开发者可以很轻松的配置自己想用的模型
- 加速 git workflow: 提供了丰富的 git 命令扩展,如 git amend, git info, git undo 等,用习惯了之后特别方便,具体参考 docs
- 自动撰写 git commit ,通过
<font style="color:rgb(0, 0, 0);">git c</font>
的命令就可以自动生成你的 git commit message ,十分方便。 - 自定义 commit 模板:支持最佳实践自定义模板,让 AI 学习定制化的 commit style 。
现在我一天基本会有好几个 commit,因此用 gcop 特别高频,每天都会用,有了 gcop 之后,感觉写 commit 的质量好了很多,commit message 也详细了很多,一定程度上增加了写代码的动力 xsl。
节选一些 commit message 供大家参考。
最近在设计一个功能:可以自动将一个大的 code diff 拆分多个 commit ,不知道大家有没有这个需求呢,另外大家要是有其他的建议也欢迎交流。
最后欢迎大家 star 支持一下!
快速上手
本指南将帮助您快速轻松地开始使用 GCOP (Git Copilot),详情可以查看官网:https://gcop.zeeland.top
前置要求
在开始之前,请确保您已具备以下条件:
- Python 3.8 或更新版本
- 系统中已安装 Git
- 您偏好的 LLM(如 OpenAI、Anthropic)的 API 密钥
安装
- 使用 pip 安装 GCOP:
pip install gcop
- 初始化 GCOP:
gcop init
此命令将设置 GCOP 并将其别名添加到您的 Git 配置中。
- 配置您的 AI 模型:
git gconfig
这将打开配置文件。编辑它以包含您的 AI 提供商详细信息:
model:
model_name: provider/name, 例如 openai/gpt-4
api_key: 您的api密钥
如何配置您的模型?请参考如何配置模型<font style="color:rgb(0, 0, 0);">config.yaml</font>
文件将存储在:
- <font style="color:rgb(0, 0, 0);">Windows: </font>`<font style="color:rgb(0, 0, 0);">%USERPROFILE%\.gcop\config.yaml</font>`
- <font style="color:rgb(0, 0, 0);">Linux: </font>`<font style="color:rgb(0, 0, 0);">~/.gcop/config.yaml</font>`
- <font style="color:rgb(0, 0, 0);">MacOS: </font>`<font style="color:rgb(0, 0, 0);">~/.gcop/config.yaml</font>`
- 验证安装:
git ghelp
您应该能看到可用的 GCOP 命令列表。
基本用法
生成 AI 提交信息
- 暂存您的更改:
git add .
- 生成并应用 AI 提交信息:
git c
有时,如果您想同时使用
<font style="color:rgb(0, 0, 0);">git add .</font>
和<font style="color:rgb(0, 0, 0);">git c</font>
,可以使用<font style="color:rgb(0, 0, 0);">git ac</font>
作为快捷方式。
在 AI 生成提交信息后,您可以:
- 接受默认信息
- 重试
- 根据您的反馈重试
- 或退出
最终,您可以看到如下的提交信息:
(gcop) D:\Projects\gcop\docs>git ac
[Code diff]
...
[Thought] 这些更改涉及更新 VitePress 配置以使用环境变量作为网站 ID,在快速入门指南中添加对新文档页面的引用,以及更正模型配置文档中的 URL。这些更改主要与文档和配置更新有关。
[Generated commit message]
docs: 更新 VitePress 配置并添加模型配置引用
- 更新 VitePress 配置以使用环境变量作为网站 ID
- 在快速入门文档中添加模型配置指南引用
- 更正模型配置文档中的 URL
这些更改提高了文档的清晰度和准确性,确保用户可以正确配置网站并了解如何设置模型。
? 您想用这个信息提交更改吗? yes
[main 5612f60] docs: 更新 VitePress 配置并添加模型配置引用
3 files changed, 5 insertions(+), 2 deletions(-)
查看仓库信息
要获取仓库的详细概览,使用:
git info
此命令现在显示关于您仓库的综合信息,包括:
- 项目名称
- 当前分支
- 最新提交
- 未提交更改数量
- 远程 URL
- 总提交数
- 贡献者数量
- 仓库创建时间
- 最后修改时间
- 仓库大小
- 最活跃的贡献者
- 变更最多的文件
- 按语言统计的代码行数(如果安装了 cloc)
- 最新标签
- 分支数量
- 未跟踪文件数量
- 子模块信息
- 最新合并提交
- 文件类型统计
这些详细信息提供了对项目状态、历史和组成的全面了解。它对于快速评估仓库的整体结构和近期活动特别有用。
例如:
注意:某些功能(如按语言统计代码行数)需要安装额外的工具(如 cloc)。
下一步
- 浏览介绍了解 GCOP 的功能概览
- 查看如何配置模型指南了解高级配置选项
- 访问我们的常见问题获取常见问题解答和故障排除
立即开始使用 GCOP 增强您的 Git 工作流程!