当前位置: 首页 > news >正文

gcop:简化 Git 提交流程的高效助手 | 一键生成 commit message

  • 💖 大家好,我是Zeeland。Tags: 大模型创业、LangChain Top Contributor、算法工程师、Promptulate founder、Python开发者。
  • 📣 个人说明书:Zeeland
  • 📣 个人网站:https://me.zeeland.cn/
  • 📚 Github主页: Undertone0809 (Zeeland)
  • 🎉 支持我:点赞👍+收藏⭐️+留言📝 我会定期在博客、个人说明书、论坛中做一些技术分享。也欢迎大家阅读我的个人说明书,大家可以在这里快速了解我和我做过的事情,期待和你交个朋友,有机会我们一起做一些有意思的事情

在日常的开发工作中,提交代码是一项频繁且必须的任务。而编写一致且有意义的 git commit 消息对于项目的维护和代码审核至关重要。然而,这也是一项需要花费时间和精力的工作。为了简化这个过程,我开发了一个名为 gcop 的 Git 提交助手工具,只需一个命令就能自动生成合适的 git commit message。

开发背景

gcop 的开发灵感来自于一次偶然的推文分享 https://x.com/mtrainier2020/status/1802941902964277379,我突然想到可以借助 git alias 添加一些小命令,于是我花了两个小时的时间进行工程封装,并发布了 pypi 包 ,so not only a demo。

我的目的很简单,就是简化自己的 git commit 流程。所有额外的操作或输入自然语言的步骤都会降低开发体验。因此,在这个核心场景下,我希望有一个工具可以无缝地集成到我的 git 工作流中,自动生成提交消息。

gcop 就是这样一个工具,它通过大语言模型的能力帮助我撰写 git commit 消息。只需要一个简单的命令 git gcommit,就能生成符合规范的提交消息,如 feat: …。

在这个核心场景下,git gcommit 命令直接无缝接入我的 git 工作流中,让我可以非常方便地自动 commit。gcop 简单,但足够高效。

项目亮点

  1. 无缝集成到 Git 工作流: gcop 能让开发者在不需要额外输入任何自然语言的情况下,轻松生成合适的提交消息。只需一个 git gcommit 命令,即可完成。
  2. 集成大语言模型: gcop 集成了 promptulate 的能力,可以使用市面上的任意语言模型来生成 git commit message,如 gpt-4o、deepseek 等模型,用户可以通过配置文件(如 config.yaml)来选择和配置自己的模型,使用起来非常方便。
  3. 标准化的 Python 项目: gcop 是基于 p3g 脚手架生成的,确保了项目的标准化和可维护性。p3g 作为一个成熟的 Python 项目生成器,可以方便地创建标准化的 Python 工程化项目。

使用指南

安装和初始化

首先,通过 pip 安装 gcop:

pip install gcop

安装后需要初始化配置,运行以下命令:

gcop init

这将把 gcop 的命令别名添加到 git 中。

基本使用

在项目中执行以下命令以生成提交消息:

git add .
git gcommit

通过这些简单的操作,gcop 会根据阶段变更自动生成合适的提交消息。

配置语言模型

首次使用前需要配置语言模型。通过运行以下命令打开配置文件:

git gconfig

gcop 将生成一个 config.yaml 文件,用户可以在其中配置自己的语言模型。例如:

model:model_name: OpenAI/gpt-4api_key: YOUR_API_KEY

视频演示

为了更清晰地展示 gcop 的功能,这里附上一个视频演示链接:
https://www.youtube.com/watch?v=j7qKI_TdhXs

如何自定义模型

gcop 集成了 promptulate 的能力,这意味着你可以轻松集成市面上的任意模型,下面的一些实例展示了如何配置不同大模型厂商的模型名。

下面是一个模型模版:

model:model_name: provider/name,eg openai/gpt-4oapi_key: your_api_key
OpenAI

If you want to initialize the model, you can use the following command:

model:model_name: openai/gpt-4oapi_key: your_api_key
Claude
model:model_name: claude-2api_key: your_api_key
Deepseek
model:model_name: deepseek/deepseek-chatapi_key: your_api_key
Ollama
model:model_name: ollama/llama2api_key: your_api_keyapi_base: http://localhost:11434
OpenAI Proxy

如果你使用智谱的模型,这意味着你可以通过如下方式进行配置:

model:model_name: openai/glm-4api_key: your_api_keyapi_base: https://open.bigmodel.cn/api/paas/v4/

Use openai/model_name provider means you are using OpenAI SDK to call the model.

OpenRouter
model:model_name: openrouter/google/palm-2-chat-bisonapi_key: your_api_key

HuggingFace

model:model_name: huggingface/gpt2api_key: your_api_key

如何贡献

如果您对 gcop 感兴趣,可以访问 GitHub 项目页面获取更多信息和源码:https://github.com/Undertone0809/gcop

总结

在开发过程中,我深刻体会到简化工作流程的重要性。gcop 的诞生,就是为了让开发者能够更加专注于核心代码的编写,而不必被繁琐的提交消息所困扰。希望 gcop 能帮助更多的开发者提升工作效率。

当然,同步分享一下上面提到的两个项目,promptulate https://github.com/Undertone0809/promptulate
p3g 这两个框架也是本人开发。

http://www.lryc.cn/news/389965.html

相关文章:

  • TS_类型
  • Linux源码阅读笔记10-进程NICE案例分析2
  • Elasticsearch实战教程: 如何在海量级数据中进行快速搜索
  • Python学习笔记24:进阶篇(十三)常见标准库使用之数据压缩功能模块zlib,gzip,bz2,lzma的学习使用
  • 【笔记】Android Settings 应用设置菜单的界面代码介绍
  • Symfony配置管理深度解析:构建可维护项目的秘诀
  • 视频的宣传片二维码怎么做?扫码播放视频的制作教程
  • 实用的网站
  • Monorepo(单体仓库)与 MultiRepo(多仓库): Monorepo 单体仓库开发策略与实践指南
  • 使用 PyTorch 创建的多步时间序列预测的 Encoder-Decoder 模型
  • 开启IT世界的第一步:高考新生的暑期学习指南
  • 软考系统架构师高效备考方法论
  • 【neo4j图数据库】入门实践篇
  • 【TS】TypeScript 原始数据类型深度解析
  • 怎么样调整分类的阈值
  • java+mysql教师管理系统
  • PDF文档如何统计字数,统计PDF文档字数的方法有哪些?
  • 在Python asyncio中如何识别协程是否被block了
  • Hyper-V虚拟机固定IP地址(手把手教设置)
  • 以 Vue 3 项目为例,多个请求下如何全局封装 Loading 的展示与关闭?其中大有学问!
  • Node.js学习(一)
  • Spring Data JPA使用及实现原理总结
  • 【C语言】extern 关键字
  • Linux--V4L2应用程序开发(二)改变亮度
  • [Gstreamer] 消息处理handler的设置
  • 线性代数笔记
  • 未公开 GeoServer开源服务器wfs远程命令执行漏洞 已复现(CVE-2024-36401)
  • 【WebGIS干货分享】Webgis 面试题-浙江中海达
  • ES 修改索引字段类型
  • 恢复的实现技术-日志和数据转储