持续优化,构建更好的 auto git commit 体验!

10 阅读5分钟

几个月前,受到一篇推文的启发 x.com/mtrainier20… ,我突然想到可以借助 git alias 添加一些小命令,加速我的 git workflow 流程,于是我花了两个小时的时间进行工程封装,并发布了 pypi 包,并分享到了 V2EX 上: www.v2ex.com/t/1052254

几个月来,我一直在维护这个框架,gcop 是一个智能的 AI copilot ,旨在帮助开发者撰写更好的 git commit message ,同时加速 git workflow 。

官网: gcop.zeeland.top/

Github: github.com/undertone08…

gcop 具有以下优点:

  • 配置简单,pip install gcop -U 之后,简单配置完自己的模型就能直接使用 AI 生成你的 commit
  • 兼容市面上的几乎所有模型,底层基于promptulate 构建,开发者可以很轻松的配置自己想用的模型
  • 加速 git workflow: 提供了丰富的 git 命令扩展,如 git amend, git info, git undo 等,用习惯了之后特别方便,具体参考 docs
  • 自动撰写 git commit ,通过 git c 的命令就可以自动生成你的 git commit message ,十分方便。
  • 自定义 commit 模板:支持最佳实践自定义模板,让 AI 学习定制化的 commit style 。

现在我一天基本会有好几个 commit,因此用 gcop 特别高频,每天都会用,有了 gcop 之后,感觉写 commit 的质量好了很多,commit message 也详细了很多,一定程度上增加了写代码的动力 xsl。

节选一些 commit message 供大家参考。

最近在设计一个功能:可以自动将一个大的 code diff 拆分多个 commit ,不知道大家有没有这个需求呢,另外大家要是有其他的建议也欢迎交流。

最后欢迎大家 star 支持一下!

快速上手

本指南将帮助您快速轻松地开始使用 GCOP (Git Copilot) ,详情可以查看官网 gcop.zeeland.top

前置要求

在开始之前,请确保您已具备以下条件:

  • Python 3.8 或更新版本
  • 系统中已安装 Git
  • 您偏好的 LLM(如 OpenAI、Anthropic)的 API 密钥

安装

  1. 使用 pip 安装 GCOP:

    pip install gcop
    
  2. 初始化 GCOP:

    gcop init
    

    此命令将设置 GCOP 并将其别名添加到您的 Git 配置中。

  3. 配置您的 AI 模型:

    git gconfig
    

    这将打开配置文件。编辑它以包含您的 AI 提供商详细信息:

    model:
      model_name: provider/name, 例如 openai/gpt-4
      api_key: 您的api密钥
    

    如何配置您的模型?请参考如何配置模型

    config.yaml 文件将存储在:

    • Windows: %USERPROFILE%\.gcop\config.yaml
    • Linux: ~/.gcop/config.yaml
    • MacOS: ~/.gcop/config.yaml
  4. 验证安装:

    git ghelp
    

    您应该能看到可用的 GCOP 命令列表。

基本用法

生成 AI 提交信息

  1. 暂存您的更改:

    git add .
    
  2. 生成并应用 AI 提交信息:

    git c
    

有时,如果您想同时使用 git add .git c,可以使用 git ac 作为快捷方式。

在 AI 生成提交信息后,您可以:
  • 接受默认信息
  • 重试
  • 根据您的反馈重试
  • 或退出

最终,您可以看到如下的提交信息:

image.png

(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)
  • 最新标签
  • 分支数量
  • 未跟踪文件数量
  • 子模块信息
  • 最新合并提交
  • 文件类型统计

这些详细信息提供了对项目状态、历史和组成的全面了解。它对于快速评估仓库的整体结构和近期活动特别有用。

例如:

image.png

注意:某些功能(如按语言统计代码行数)需要安装额外的工具(如 cloc)。

其他有用的命令

  • git ac: 添加所有更改并使用 AI 生成的信息提交
  • git p: 将更改推送到远程仓库
  • git undo: 撤销最后一次提交,同时保持更改暂存
  • git gconfig: 打开 GCOP 配置文件进行调整

有关每个命令的详细信息,请参阅命令部分。

下一步

立即开始使用 GCOP 增强您的 Git 工作流程!