Skip to main content

Git Agent for git operations automation. It will commit file by file on day by day, to make sure you have a commit every day.

Project description

🤖 GitAgent

PyPI version Supported Python License

✨ 让 Git 提交变得简单又智能!自动整理变更、确保每天都有提交记录,还能用 AI 生成有趣的提交信息 🎉

CLI 截图


📦 安装

一行命令搞定:

pip install oh-my-git-agent

🚀 快速上手

场景 1️⃣:基础提交(无 AI)

最简单的用法,在你的 Git 仓库里直接运行:

# 💡 自动提交所有变更文件,每个文件单独提交
gcli

效果

  • ✅ 自动检测所有新增、修改、删除的文件
  • ✅ 每个文件一个提交,提交时间均匀分布在"最近一次提交"到"现在"之间
  • ✅ 提交信息简洁:chore add README.mdchore rm old.txt

完成后推送到远端:

git push origin main

场景 2️⃣:使用 AI 生成提交信息(推荐 🌟)

让 AI 帮你写出带 emoji 的有趣提交信息:

使用 DeepSeek(默认,性价比高)

# 🎯 只需要一个 API Key!
gcli --api-key sk-your-deepseek-key

💡 提示:DeepSeek 是默认配置,无需指定 --base-url--model

生成的提交信息示例

🎉 [add README.md] 添加项目说明文档
✨ [add src/main.py] 实现核心逻辑功能
🐛 [add tests/test_main.py] 修复边界条件测试
🔥 [rm deprecated.py] 移除废弃代码

使用 OpenAI GPT(需要梯子)

# 🌐 使用 OpenAI 官方 API
gcli --api-key sk-your-openai-key \
     --base-url https://api.openai.com/v1 \
     --model gpt-4o-mini

使用其他兼容 OpenAI 的服务

# 🔧 支持任何兼容 OpenAI 协议的服务
gcli --api-key your-api-key \
     --base-url https://your-api-endpoint.com/v1 \
     --model your-model-name

场景 3️⃣:查看变更(不提交)

想先看看有哪些文件变更了?

# 👀 彩色输出所有变更,带编号
gcli ls

输出示例

Untracked Files:
?   [  1] new_feature.py
?   [  2] config.yaml

Modified Files:
o   [  3] src/main.py
o   [  4] README.md

Deleted Files:
-   [  5] old_code.py

颜色说明:

  • 🟡 黄色:未跟踪的新文件
  • 🟢 绿色:已暂存的新增文件
  • 🔵 蓝色:修改的文件
  • 🔴 红色:删除的文件

场景 4️⃣:只提交特定文件或目录

有时候你只想提交某个目录的变更:

# 📁 只提交 src/ 目录下的变更
gcli only src/

# 📄 只提交单个文件
gcli only README.md

# 🤖 配合 AI 使用
gcli only src/ --api-key sk-your-deepseek-key

实际案例

# 场景:前端和后端代码都改了,但只想先提交前端
gcli only frontend/

# 场景:只提交文档更新
gcli only docs/

场景 5️⃣:配置管理(避免每次输入 API Key)

保存到本地项目(推荐)

# 💾 配置 API Key,只在当前项目生效
gcli config --api-key sk-your-deepseek-key

# 📝 配置完整参数
gcli config \
  --api-key sk-your-key \
  --base-url https://api.deepseek.com \
  --model deepseek-chat

配置会保存到 .oh-my-git-agent/config.yaml,以后直接运行:

gcli  # 自动读取配置,无需再输入 API Key

保存到全局配置

# 🌍 全局配置,所有项目都能用
gcli config --api-key sk-your-key --global

# 查看当前配置
gcli config --show

配置优先级(从高到低):

  1. 命令行参数:--api-key
  2. 本地配置:./.oh-my-git-agent/config.yaml
  3. 环境变量:.env 文件(OPENAI_API_KEYOPENAI_BASE_URLOPENAI_MODEL
  4. 全局配置:~/.oh-my-git-agent/config.yaml

💡 使用技巧

组合使用

# 1️⃣ 先查看有哪些变更
gcli ls

# 2️⃣ 只提交某个目录
gcli only src/ --api-key sk-xxx

# 3️⃣ 推送到远端
git push

在不同目录运行

# 🏠 不在仓库根目录?指定路径即可
gcli --repo-dir /path/to/your/repo

# 📍 配合 AI
gcli --repo-dir ~/projects/myapp --api-key sk-xxx

使用 .env 文件(推荐新手)

在项目根目录创建 .env 文件:

# .env
OPENAI_API_KEY=sk-your-deepseek-key
OPENAI_BASE_URL=https://api.deepseek.com
OPENAI_MODEL=deepseek-chat

然后直接运行:

gcli  # 自动读取 .env 配置

🔍 工作原理

简单来说,GitAgent 会:

  1. 📊 收集变更:扫描所有新增、修改、删除的文件
  2. 计算时间:从"最近一次提交"到"现在",均匀分配提交时间
  3. 📝 逐个提交:每个文件单独提交,时间间隔自然
  4. 🤖 AI 增强:(可选)读取文件 diff 或内容,生成有趣的提交信息

为什么要均匀分布时间?

  • 让你的 GitHub 贡献图更好看 🎨
  • 提交历史看起来更自然 📅
  • 避免一次性提交几十个文件 🚀

❓ 常见问题

🔑 我的 API Key 安全吗?
  • 配置文件保存在本地,不会上传到 Git
  • 建议使用 .env 文件(记得加到 .gitignore
  • 或使用 gcli config 命令保存配置
💸 使用 AI 会很贵吗?
  • DeepSeek 非常便宜,每次提交约 0.0001 元(不到 1 分钱)
  • 100 次提交约 1 分钱,1000 次约 1 毛钱
  • OpenAI 会贵一些,建议用 gpt-4o-mini
🌐 网络连接失败怎么办?
  • 检查 --base-url 是否正确
  • DeepSeek 无需梯子,直接访问
  • OpenAI 需要梯子,或使用国内中转服务
  • 可以先用 gcli ls 测试,不需要网络
📄 哪些文件会被提交?
  • 所有 Git 检测到的变更(包括未跟踪文件)
  • 自动忽略 .git/ 目录
  • 使用 gcli ls 预览哪些文件会被提交
🎯 能指定提交信息格式吗?

目前 AI 模式使用固定的 Prompt 生成带 emoji 的提交信息。如需自定义,可以:

  • 修改 gcli.py 中的 Prompt
  • 或使用非 AI 模式:gcli(生成 chore add xxx
⚡ 命令补全怎么用?
# 安装补全
gcli --install-completion

# 重启终端或重新加载 shell 配置
source ~/.zshrc  # 或 ~/.bashrc

📚 命令速查

命令 说明 示例
gcli 提交所有变更 gcli
gcli ls 查看变更列表 gcli ls
gcli only <path> 只提交指定路径 gcli only src/
gcli config 配置管理 gcli config --show
--api-key 指定 API Key gcli --api-key sk-xxx
--base-url 指定 API 地址 gcli --base-url https://...
--model 指定模型 gcli --model gpt-4o-mini
--repo-dir 指定仓库路径 gcli --repo-dir ~/myrepo

🔗 相关链接


🎉 开始使用

# 1. 安装
pip install oh-my-git-agent

# 2. 进入你的 Git 仓库
cd /path/to/your/repo

# 3. 运行(第一次建议先看看变更)
gcli ls

# 4. 开始提交
gcli --api-key sk-your-deepseek-key

# 5. 推送
git push

祝你提交愉快! 🚀✨

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oh_my_git_agent-1.0.24.tar.gz (14.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

oh_my_git_agent-1.0.24-py2.py3-none-any.whl (12.2 kB view details)

Uploaded Python 2Python 3

File details

Details for the file oh_my_git_agent-1.0.24.tar.gz.

File metadata

  • Download URL: oh_my_git_agent-1.0.24.tar.gz
  • Upload date:
  • Size: 14.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.0 CPython/3.11.4 Linux/6.6.87.2-microsoft-standard-WSL2

File hashes

Hashes for oh_my_git_agent-1.0.24.tar.gz
Algorithm Hash digest
SHA256 982ba1e64d63361ca267afbdbde7dc80a7b99b0b6ba4ff72111fae57c41325f7
MD5 b81ff032cece0ba36342183aa2fe7810
BLAKE2b-256 a8cb86a25f1b1d1c6e91080bc0d410d37f77d2b0e3f686c61cd2126ea6a1098d

See more details on using hashes here.

File details

Details for the file oh_my_git_agent-1.0.24-py2.py3-none-any.whl.

File metadata

  • Download URL: oh_my_git_agent-1.0.24-py2.py3-none-any.whl
  • Upload date:
  • Size: 12.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.0 CPython/3.11.4 Linux/6.6.87.2-microsoft-standard-WSL2

File hashes

Hashes for oh_my_git_agent-1.0.24-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 9cfbabecf6fcbcf0fcaa59b7f9dca7665f76c1acee91306071bd95b20f503aa2
MD5 d08428ffcb31d15b09a82bab50bf1232
BLAKE2b-256 887d97928a2888174119b38e04778e8d68283e22258cad7eb2991c1309f58c0b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page