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

news2024/11/5 19:21:14

几个月前,受到一篇推文的启发 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 密钥

安装

  1. 使用 pip 安装 GCOP:
pip install gcop
  1. 初始化 GCOP:
gcop init

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

  1. 配置您的 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>`
  1. 验证安装:
git ghelp

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

基本用法

生成 AI 提交信息

  1. 暂存您的更改:
git add .
  1. 生成并应用 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 工作流程!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2233761.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C#-类:声明类、声明类对象

一&#xff1a;类的声明 class 类名 {//特征——成员变量//行为——成员方法//保护特征——成员属性//构造函数和析构函数//索引器//运算符重载//静态成员 }类名&#xff1a;帕斯卡 同一个语句块中的不同类 不能重名 二&#xff1a;声明类对象 2.1 类的声明 ≠ 类对象的声…

【学习enable_if模板, 学习unqiue_str 删除操作】

enable_if 是 C 标准库中的一个模板结构体&#xff0c;它用于条件编译和 SFINAE&#xff08;Substitution Failure Is Not An Error&#xff09;。enable_if 的主要作用是通过条件编译来控制模板的实例化&#xff0c;从而实现条件编译和 SFINAE。 1. enable_if 的基本用法如下…

AIGC产品经理高频面试题❗️看完的都拿高薪了

&#x1f914;️如果你正在考虑找AI产品经理相关的工作, 建议好好准备这些面试问题, 如果想要更加详细的回答可以直接询问海螺AI哦! 谁用了不说一句: AI真的太适合准备面试啦(&#x1f640;尖叫抛开 之后会分享更多岗位的面试题目, 以及如何用AI准备面试的tips哦! 大模型&A…

【VS+QT】联合开发踩坑记录

最新更新日期&#xff1a;2024/11/05 0. 写在前面 因为目前在做自动化产线集成软件开发相关的工作&#xff0c;需要用到QT&#xff0c;所以选择了VS联合开发&#xff0c;方便调试。学习QT的过程中也踩了很多坑&#xff0c;在此记录一下&#xff0c;提供给各位参考。 1. 环境配…

Windows下安装Maven并配置环境

在Windows下安装Maven、修改阿里云仓库、修改本地仓库路径&#xff0c;并为IntelliJ IDEA配置Maven&#xff0c;可以按照以下步骤进行操作&#xff1a; 1. 安装Maven 下载Maven&#xff1a; 访问 Apache Maven官网&#xff0c;下载最新版本的Maven二进制包&#xff08;zip格式…

基于SpringBoot+微信小程序+协同过滤算法+二维码订单位置跟踪的农产品销售平台-新

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; “农产品商城”小程序…

【题】C#-数组:二维数组

1. 将1~10000赋值给一个二维数组(100行100列) int[,] array new int[100,100]; int index 1; for(int i 0;i < array.GetLength(0);i){for(int j 0;j < array.GetLength(1);j){array[i,j] index;index;} }2. 将二维数组的右上半部分置零 int[,] array new int[4,…

启明云端乐鑫一级代理商,ESP-NOW无线通信协议,设备稳定连接控制新选择

在数字化浪潮的推动下&#xff0c;我们正步入一个由智能设备构成的全新世界。这些设备&#xff0c;从智能手机到智能家居&#xff0c;从可穿戴设备到工业自动化系统&#xff0c;都在以前所未有的速度改变着我们的生活。 在物联网(IoT)的世界里&#xff0c;无线通信协议扮演着至…

基于SpringBoot的植物园管理小程序【附源码】

基于SpringBoot的植物园管理小程序 效果如下&#xff1a; 系统登录页面 管理员主页面 商品订单管理页面 植物园信息管理页面 小程序主页面 小程序登录页面 植物信息查询推荐页面 研究背景 随着互联网技术的快速发展和移动设备的普及&#xff0c;线上管理已经成为各行各业提高…

如何使用Web-Check和cpolar实现安全的远程网站监测与管理

文章目录 前言1.关于Web-Check2.功能特点3.安装Docker4.创建并启动Web-Check容器5.本地访问测试6.公网远程访问本地Web-Check7.内网穿透工具安装8.创建远程连接公网地址9.使用固定公网地址远程访问 前言 本期给大家分享一个网站检测工具Web-Check&#xff0c;能帮你全面了解网…

数据中台一键大解析!

自从互联玩企业掀起了数据中台风&#xff0c;数据中台这个点马上就火起来了&#xff0c;短短几年数据中台就得到了极高的热度&#xff0c;一大堆企业也在跟风做数据中台&#xff0c;都把数据中台作为企业数字化转型的救命稻草&#xff0c;可是如果我告诉你数据中台并不是万能钥…

华为和思科的配置

vrrp和mstp 思路 vrrp是用来虚拟网关&#xff0c;噢&#xff0c;是虚拟一条虚拟网关 优先级&#xff0c;priority越大越优先&#xff0c;优先级相同&#xff0c;哪个的路由器的vrrp先起来&#xff0c;谁就是主 mstp是快速生成树协议&#xff0c;防止环路用的 优先级越小越优…

【Linux】从零开始使用多路转接IO --- epoll

当你偶尔发现语言变得无力时&#xff0c; 不妨安静下来&#xff0c; 让沉默替你发声。 --- 里则林 --- 从零开始认识多路转接 1 epoll的作用和定位2 epoll 的接口3 epoll工作原理4 实现epollserverV1 1 epoll的作用和定位 之前提过的多路转接方案select和poll 都有致命缺点…

电子商城购物平台的设计与开发+ssm(lw+演示+源码+运行)

摘 要 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;电子商城购物平台小程序被用户普遍使用&#xff0c;为方便…

5G时代已来:我们该如何迎接超高速网络?

内容概要 随着5G技术的普及&#xff0c;我们的生活似乎变得更加“科幻”了。想象一下&#xff0c;未来的智能家居将不仅仅是能够听你说“开灯”&#xff1b;它们可能会主动询问你今天心情如何&#xff0c;甚至会推荐你一杯“维他命C芒果榨汁”&#xff0c;帮助你抵御夏天的炎热…

超详细的finalshell安装nginx

一、nginx环境安装 1.安装gcc 安装nginx需要先将官网下载的源码进行编译&#xff0c;编译依赖gcc环境&#xff0c;如果没有gcc环境&#xff0c;需要安装gcc。 yum install gcc-c 出现选择是否下载安装文件&#xff0c;输入 y 2.安装PCRE PCRE(Perl Compatible Regular Expre…

运维工具之docker入门

1.容器与docker 1.什么是容器&#xff1f; 容器是一种轻量级的&#xff0c;可移植的软件运行环境。它将软件程序本身及软件依赖库打包在一起。可以在不同平台和系统上运行。 2.什么是LXC LXC就是Linux container,。LXC是一种虚拟化技术&#xff0c;可以在操作系统层级上为应…

【华为HCIP实战课程二十九】中间到中间系统协议IS-IS邻居关系建立和LSP详解,网络工程师

一、广播环境邻居关系建立详解 1、广播环境邻居关系建立 广播邻居关系采用三次握手,携带的邻居列表为接口的MAC来标识 2、LSP同步:3种报文(CSNP和PSNP和具体的LSP) CSNP作用类似DBD,请求者发送PSNP(类似LSR)来请求具体的LSP 广播网络LSP交互过程: R1-R2(DIS)--R3…

计算机网络:网络层 —— 网络地址转换 NAT

文章目录 网络地址转换 NAT 概述最基本的 NAT 方法NAT 转换表的作用 网络地址与端口号转换 NAPTNAT 和 NAPT 的缺陷 网络地址转换 NAT 概述 尽管因特网采用了无分类编址方法来减缓 IPv4 地址空间耗尽的速度&#xff0c;但由于因特网用户数量的急剧增长&#xff0c;特别是大量小…

从零开始的c++之旅——继承

1. 继承 1.继承概念及定义 继承是面向对象编程的三大特点之一&#xff0c;它使得我们可以在原有类特性的基础之上&#xff0c;增加方法 和属性&#xff0c;这样产生的新的类&#xff0c;称为派生类。 继承 呈现了⾯向对象程序设计的层次结构&#xff0c;以前我们接触的…