背景

今天写完代码后, commit到git仓库, 让我写提交信息时, 突然发现了些问题

1、发现git commit 经常很难描述清晰

在写后面的message,  如:

git commit -m "增加了菜单, 修复了跳转bug等"

只是很简单的概括性描述, 发现, 如果修改代码太多, 那么 -m 后面的信息经常写的不全, 修改内容描述不清.

2、发现项目里很多git commit message 都混乱

用git log 看了下,  大量描述通常如:  “fix bug” 、“修复bug”、“增加字段”, 之类, 具经常就是简单几个字描述. 一看就让人头痛, 不知道具体改了什么,

这种混乱的提交信息, 对后续要寻找修改历史时也带来了负担,  基于这些, 是否能用AI帮我总结这块内容呢,  于是有了下面这个项目,  先给大家直接展示效果.


展示

a、提交内容

这里用了个用户的例子展示, 开放个新接口给外部系统查询,   如: 写了个接口,大概内容如下:

b. 用GIT提交

安装完脚本后, 开始测试

git add .  //变更加入暂存区

然后直接执行

git commit  //提交, 注意: 没带任何说明参数  

注意这里没执行 -m 参数, AI自动给我总结了我今天的内容, 并提交成功

截图看下:

AI 帮我总结完成了, 并提交了整个修改的总结. 可以查看下

git log  // 查看提交日志进行确认

如下:

完美!

已经自动完成对变更对总结, 并填充到了git commit message里面.

下面把小工具开源出来, 大家可以试试.


安装使用

项目地址:

上传到了github上面, 可以直接下载

https://github.com/bensonHe/auto-git-commit-message

具体如:

a. 把项目下下来

git clone git@github.com:bensonHe/auto-git-commit-message.git

b. 准备好token

去阿里云百炼大模型, 注册个API Key  (目前免费, 我一直用这个, 免费送了很多token, 感谢阿里云)

打开百炼控制台,  https://bailian.console.aliyun.com/

比如我的:

c. 直接安装

直接运行项目里面的 ./install.sh

最后, 启动

ok 完美,  不用再写任何的git 的备注内容了, 清晰可见.

更多, 如果有疑问可以去看下README.MD , 这个小工具我会持续维护下, 打磨好, 难免有个别bug.

感谢包容


最后

作为一名16年的老程序员, 我始终对新技术保持好奇和热情,  会继续用实战案例,和大家一起摸索如何让AI真正落地到日常开发中。如果你也感兴趣,欢迎关注我, 一起实践、一起进化

再不用手写Commit!AI自动总结代码变更,Git提交效率的更多相关文章

  1. 手写DotNet Core 认证授权代码

    在普通的MVC项目中 我们普遍的使用Cookie来作为认证授权方式,使用简单.登录成功后将用户信息写入Cookie:但当我们做WebApi的时候显然Cookie这种方式就有点不适用了. 在dotnet ...

  2. 4.2tensorflow多层感知器MLP识别手写数字最易懂实例代码

    自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取: https://www.cnblogs.com/bclshuai/p/11380657.html 1.1  多层感知器MLP(m ...

  3. 手写笔记变PDF-几行代码变命令行程序为图形化界面

    前言 最近发现了一个非常不错的Python类库----Gooey, https://github.com/chriskiehl/Gooey 在它的帮助下我们可以非常方便的将一个命令行程序升级成一个图形 ...

  4. SpringBoot(三)手写starter pom自动配置

    思想:主要是EnableAutoConfiguration在启动的时候会扫描spring.factories并加载 1在resource下面新建META-INF/spring.factories 2在 ...

  5. [1.1W字] 复习: CSS 9个背景属性&6种渐变函数, 学会可以手写实现AI中强大的"任意渐变"! #Archives009

    Title/ CSS Background&Gradient完全指南 #Archives009 序: 关于 background 属性, 了解点CSS的人总会知道个大概. 但是你肯定多半还有点 ...

  6. 不再手写import - VSCode自动引入Vue组件和Js模块

    :first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdow ...

  7. 手写数字0-9的识别代码(SVM支持向量机)

    帮一个贴吧的朋友改的一段代码,源代码来自<机器学习实战> 原代码的功能是识别0和9两个数字 经过改动之后可以识别0~9,并且将分类器的产生和测试部分分开来写,免得每次测试数据都要重新生成分 ...

  8. 【TensorFlow-windows】(四) CNN(卷积神经网络)进行手写数字识别(mnist)

    主要内容: 1.基于CNN的mnist手写数字识别(详细代码注释) 2.该实现中的函数总结 平台: 1.windows 10 64位 2.Anaconda3-4.2.0-Windows-x86_64. ...

  9. c++后台开发面试常见知识点总结(六)算法手写

    链表倒转  leetcode-206 连续子数组最大和问题(和最大的连续子序列的和)   leetcode-53 输出字符串中最长的回文子串长度?  leetcode-5 一个字符串,求最长无重复子串 ...

  10. ADO.NET #3-1 (GridView + DataReader + SqlCommand)完全手写Code Behind

    [C#] ADO.NET #3-1 (GridView + DataReader + SqlCommand)完全手写.后置程序代码 之前有分享过一个范例 [C#] ADO.NET #3 (GridVi ...

随机推荐

  1. HTTP/1.1 优化

    避免发送 HTTP 请求 对于一些具有重复性的 HTTP 请求,比如每次请求得到的数据都一样的,我们可以把这对「请求-响应」的数据都缓存在本地,通过缓存技术减少请求次数. 客户端会把第一次请求以及响应 ...

  2. Docker镜像(image)详解

    如果曾经做过 VM 管理员,则可以把 Docker 镜像理解为 VM 模板,VM 模板就像停止运行的 VM,而 Docker 镜像就像停止运行的容器:而作为一名研发人员,则可以将镜像理解为类(Clas ...

  3. 一文速通 Python 并行计算:05 Python 多线程编程-线程的定时运行

    一文速通 Python 并行计算:05 Python 多线程编程-线程的定时运行 摘要: 本文主要讲述了 Python 如何实现定时任务,主要有四种方式:通过 threading.Timer 类.通过 ...

  4. datasnap的Restful的接口方法

    //Restful接口测试 //GET function Test(Value: string): string; //POST function updateTest(Value: string; ...

  5. expected at least 1 bean which qualifies as autowire candidate

    org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'log ...

  6. nohup启动jar包

    1. 后台启动jar包,并追加日志到日志文件run.log nohup java -jar wash-1.0-SNAPSHOT.jar >> run.log 2>&1 &am ...

  7. MySQL 的索引下推是什么?

    MySQL 的索引下推是什么? 索引下推(Index Condition Pushdown, ICP)是 MySQL 优化器在 InnoDB 存储引擎中引入的一种查询优化技术,从 MySQL 5.6 ...

  8. 题解:AT_abc369_d [ABC369D] Bonus EXP

    题目大意: 有 nnn 个怪物,每个怪物有一个战力值 aia_iai​ ,你可以选择击败他或放走他,放走他没有经验值,击败他可以获得 aia_iai​ 的经验值,如果击败的数量是偶数,则还可以获得 a ...

  9. 容器原理之cgroup

    " 以 docker 为代表,轻量.便携的 container 使得打包和发布应用非常容易.系列文章容器原理主要分析 container 用到的核心技术,主要包括 Linux namespa ...

  10. Vue计算属性computed与监听器watch

    Vue计算属性computed与监听器watch 诞生原因:在模板中放入太多的逻辑会让模板过重且难以维护,比如 对后台插入地数据进行切割重组  <div id="example&quo ...