magit-gptcommit: 仅供娱乐的 magit commit message 生成

链接在此:magit-gptcommit

  • 支持监听 staged 内容变化,自动生成新的 commit message
  • 支持缓存(diff content 的 md5 做 key)
  • magit-commit transient 命令添加新的 gptcommit 命令
  • 支持在 COMMIT_EDITMSG buffer 导入并修改 gptcommit 的生成结果
  • 支持一键将 gptcommit 的生成结果直接提交

上一个月看到 VS Code 生成 git commit message 的视频,有点意思。找了一圈没发现 emacs 有人实现(用 magit 关键字找不到 ),就动起自己做的心思,断断续续边学边做了两周,基本就差文档了,才发现有人做过类似的,差点想烂尾,不过好歹自己的第一个 package,不想放弃,死皮赖脸也要先发布出来。

现在还是娱乐性质居多,Prompt 还有很大的优化空间。另外一个问题就是上下文限制,比如 GPT3.5 才 4k token 随便提交一个文件就爆了,现在只是粗暴的按比例截断处理。 另外一个办法,就是像 gptcommit 一样,每个文件 diff 先总结一次 ,再整合各个总结生成 commit。最后生成一个 message 需要 n + 2 个请求,不过我使用后也是娱乐居多。看有没有人用再投入时间改了。

最后,祝各位 emacser 新春快乐!

2 个赞

挺喜欢的,看到 twitter 后立刻分享到了群里。

谢谢🙏,已fo。我还一度以为这是伪需求。

差不多一次几分钱?最新的 gpt-3.5-turbo-0125 支持 16K token。

Pricing

Model Input Output
gpt-3.5-turbo-0125 $0.0005 / 1K tokens $0.0015 / 1K tokens
gpt-3.5-turbo-instruct $0.0015 / 1K tokens $0.0020 / 1K tokens

插件修改了 magit 默认的行为么,多个 unstaged changes,stage 其中一个,会把其他的都展开,我不需要这种默认的展开,太烦人了。

并没有,应该是 bug。如果 section 插入到 buffer 中间会就有奇怪的问题,我再看看。

1 个赞