git-rewrite-commits

GitHub
1.4k 56 简单 1 次阅读 今天MIT语言模型插件
AI 解读 由 AI 自动生成,仅供参考

git-rewrite-commits 是一款利用人工智能自动优化 Git 提交历史的开发者工具。它旨在解决项目早期开发中常见的提交信息混乱、不规范问题,能够一键将随意的提交描述重写为符合“约定式提交”(Conventional Commits)标准的专业格式,非常适合在开源项目发布前或功能分支合并前清理历史记录。

该工具主要面向软件工程师和技术团队,特别是那些希望提升代码仓库可维护性但无暇手动修正大量历史提交的开发者。其核心技术亮点在于灵活的 AI 后端支持:既可通过 OpenAI GPT 实现高精度重写,也能连接本地 Ollama 模型,确保敏感代码差分数据完全在本地处理,无需上传至云端,从而兼顾了智能化与数据隐私安全。

此外,git-rewrite-commits 内置了多重安全机制,包括操作前自动创建备份分支、敏感信息(如密钥)自动脱敏以及干跑模式预览,极大降低了重写历史的风险。它还支持多语言生成、自定义提示词和项目特定规范文件,让团队能灵活定制提交风格。无论是个人项目的整理,还是团队协作中的规范化治理,它都能高效地让杂乱的提交历史变得清晰有序。

使用场景

某初创团队的核心工程师在将内部孵化半年的项目正式开源前,急需整理混乱的本地提交记录以符合社区规范。

没有 git-rewrite-commits 时

  • 提交历史充斥着"fix bug"、"update code"、"wip"等随意描述,外部贡献者完全无法理解每次变更的具体意图。
  • 手动重写数十个历史提交不仅耗时数小时,还极易因操作失误导致分支错乱或代码丢失。
  • 由于缺乏统一格式,提交信息未遵循 Conventional Commits 规范,导致无法自动生成变更日志(Changelog)和版本号。
  • 担心敏感信息(如临时硬编码的密钥片段)随 diffs 被意外暴露给公共 AI 服务,不敢轻易使用自动化工具。
  • 在反复修改提交信息的过程中,难以保证上下文连贯性,经常出现描述与实际代码改动不符的情况。

使用 git-rewrite-commits 后

  • 一键扫描整个历史,AI 自动将模糊描述重构为语义清晰的标准化信息(如 feat: add user authentication),大幅提升可读性。
  • 内置安全机制自动红敏敏感数据,并支持通过 Ollama 进行纯本地化处理,确保私有代码绝不流出机器。
  • 自动将所有提交转换为 Conventional Commits 格式,直接打通了后续自动化发布和生成精美 Changelog 的流程。
  • 提供 Dry-run 模式和自动备份分支,让工程师在确认预览效果无误后再执行重写,彻底消除“改坏历史”的焦虑。
  • 智能分析代码 Diff 上下文,生成的提交信息精准对应具体逻辑变更,甚至能识别出被遗漏的关键修复细节。

git-rewrite-commits 将原本需要半天的人工清洗工作压缩至几分钟,帮助开发者以专业、整洁的代码历史迎接开源社区的第一次审视。

运行环境要求

操作系统
  • Windows
  • macOS
  • Linux
GPU
  • 非必需
  • 若使用本地 AI 模型(Ollama),取决于所选模型的需求
  • 若使用远程 API(OpenAI)则无需本地 GPU
内存

未说明

依赖
notes该工具基于 Node.js (npx/npm) 运行,而非 Python。核心功能依赖外部 AI 服务:既可使用远程 OpenAI API(需联网及 API Key),也可配置本地 Ollama 服务(需自行安装 Ollama 并下载模型如 llama3.2/gemma3)。重写 Git 历史前会自动创建备份分支。涉及敏感数据时建议使用本地 Ollama 模式以避免数据外传。
python未说明
Node.js (运行 npx/npm)
git
OpenAI API Key (可选)
Ollama (可选,用于本地推理)
git-rewrite-commits hero image

快速开始

项目提交指南

请确保每次提交都包含以下信息:

  1. 类型: 使用符合 Conventional Commits 格式的前缀,例如 feat:fix:docs: 等。
  2. 描述: 简洁明了地说明本次提交的目的和内容。
  3. 关联问题: 如果提交与特定问题相关,请在提交信息中提及问题编号或链接。

示例:

feat: 添加用户注册功能
fix: 修复登录页面的样式问题
docs: 更新 README 文件中的使用说明

请注意:所有提交必须遵循上述格式,以保持代码库的一致性和可维护性。

需求

  • 使用带有以下作用域的规范提交:auth、api、ui、db
  • 如果有工单号,请一并注明(例如:JIRA-123)
  • 安全相关变更必须明确标注
  • 破坏性变更需要在消息中包含 BREAKING CHANGE

项目背景

这是一个处理敏感数据的金融服务API。 请在提交信息中强调安全性、合规性和性能。

请参阅本仓库中的 [`COMMIT_MESSAGE.md.example`](COMMIT_MESSAGE.md.example),以获取完整示例。

使用方法

命令示例

# 使用完整命令名
npx git-rewrite-commits [options]

# 或使用简短别名 (grec)
npx grec [options]

常见用法:

# 重写整个 Git 历史
npx git-rewrite-commits

# 预览更改而不应用(试运行)
npx git-rewrite-commits --dry-run

# 为暂存的更改生成提交信息
npx git-rewrite-commits --staged

# 仅处理最近 10 条提交
npx git-rewrite-commits --max-commits 10

# 使用自定义 AI 模型
npx git-rewrite-commits --model gpt-4

# 使用 Ollama 的本地 AI
npx git-rewrite-commits --provider ollama

# 安装或更新 Git 钩子
npx git-rewrite-commits --install-hooks

实际案例

自动化提交信息生成

两个智能钩子

  1. pre-commit:预览 AI 生成的信息,并可选择替换不良提交信息
  2. prepare-commit-msg:自动生成功能或使用已批准的信息
# 安装钩子(任选其一)
npx git-rewrite-commits --install-hooks
# 或
npx grec --install-hooks

# 启用它们(出于安全考虑需手动开启)
git config hooks.preCommitPreview true    # 提交前预览
git config hooks.prepareCommitMsg true    # 编辑器中自动生成

# 配置提供商
git config hooks.commitProvider ollama  # 或使用 OpenAI 并设置 OPENAI_API_KEY
git config hooks.providerModel llama3.2  # 可选:指定模型

现在当你执行 git commit 时:

  • 使用 pre-commit 钩子:你会先看到 AI 生成的信息预览
  • 使用 prepare-commit-msg 钩子:AI 生成的信息会出现在编辑器中

手动重写现有提交

# 在推送前清理最近 5 条提交
echo "🔧 正在优化提交信息以便推送..."
npx git-rewrite-commits --max-commits 5 --dry-run

echo "是否应用更改?(y/n)"
read answer
if [ "$answer" = "y" ]; then

快速修复的别名

添加到你的 ~/.gitconfig~/.zshrc/~/.bashrc 文件中:

# Git 别名
git config --global alias.fix-commits '!npx git-rewrite-commits --max-commits'

# 使用方法:git fix-commits 3
# Shell 别名
alias fix-last-commit='npx git-rewrite-commits --max-commits 1 --skip-backup'
alias fix-branch='npx git-rewrite-commits --max-commits 20'

# 使用方法:fix-last-commit

团队工作流程:特性分支清理

在创建拉取请求之前:

# 1. 检查需要修复的内容
npx git-rewrite-commits --dry-run --max-commits 10

# 2. 应用改进
npx git-rewrite-commits --max-commits 10

# 3. 强制推送到你的特性分支
git push --force-with-lease origin feature-branch

CI/CD 集成

将以下内容添加到你的 CI 流水线(例如 GitHub Actions)中,用于验证拉取请求:

- name: 检查提交质量
  run: |
    npx git-rewrite-commits --dry-run --max-commits ${{ github.event.pull_request.commits }}
    # 这将显示哪些提交可以被改进

准备开源

在将私有仓库公开之前:

# 使用自定义模板修复所有提交
npx git-rewrite-commits \
  --template "feat(scope): message" \
  --language en \
  --no-skip-well-formed

# 检查更改
git log --oneline -20

# 如果满意,强制推送
git push --force-with-lease origin main

工作原理

  1. 分析:读取你暂存的更改或提交历史
  2. 生成:利用 AI 创建有意义的规范提交信息
  3. 应用:用更好的信息更新你的提交

智能信息替换

当你使用 git commit -m "bad message" 时,pre-commit 钩子可以:

  • 推荐更好的 AI 生成信息
  • 在你批准后替换掉原来的差劲信息
  • 在提交编辑器中显示被替换的内容

历史重写流程

  1. 创建备份:保存当前分支状态
  2. 重写历史:使用 git filter-branch 应用新信息
  3. 提供恢复功能:保留备份分支,以备不时之需

贡献

欢迎贡献!请随时提交 Pull Request。对于重大更改,请先打开一个议题讨论你想要修改的内容。

  1. 分支仓库
  2. 创建你的特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交你的更改(使用规范提交!)
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开 Pull Request

许可证

本项目采用 MIT 许可证——详情请参阅 LICENSE 文件。

错误报告

如果你发现任何错误,请在此处提交问题:https://github.com/f/git-rewrite-commits/issues

联系方式

如有疑问或需要支持,请在 GitHub 仓库中提交问题。


请记住:在重写历史之前务必备份你的仓库! 🔒

常见问题

相似工具推荐

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

150.7k|★★☆☆☆|今天
开发框架Agent语言模型

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|昨天
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|5天前
插件开发框架

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|5天前
语言模型图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|6天前
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85.1k|★★☆☆☆|昨天
图像数据工具视频