feat:(first commit)created repository and complete 0.1.0
This commit is contained in:
337
readme_zh.md
Normal file
337
readme_zh.md
Normal file
@@ -0,0 +1,337 @@
|
||||
# QuiCommit
|
||||
|
||||
一款强大的AI驱动的Git助手,用于生成规范化的提交信息、标签和变更日志,并支持为不同工作场景管理多个Git配置。
|
||||
|
||||

|
||||

|
||||
|
||||
## ✨ 主要功能
|
||||
|
||||
- 🤖 **AI智能生成**:使用LLM API(OpenAI、Anthropic)或本地Ollama模型生成提交信息、标签注释和变更日志
|
||||
- 📝 **规范化提交**:全面支持Conventional Commits和@commitlint格式规范
|
||||
- 👤 **多配置管理**:为不同工作场景保存和切换多个Git配置(用户信息、SSH密钥、GPG签名)
|
||||
- 🏷️ **智能标签管理**:基于语义版本的智能版本升级,自动生成发布说明
|
||||
- 📜 **变更日志生成**:自动生成Keep a Changelog或GitHub Releases格式的变更日志
|
||||
- 🔐 **安全保护**:加密存储敏感数据,如SSH密码和API密钥
|
||||
- 🎨 **交互式界面**:美观的CLI界面,支持交互式提示和预览功能
|
||||
|
||||
## 📦 安装说明
|
||||
|
||||
### 从源码安装
|
||||
|
||||
```bash
|
||||
git clone https://github.com/yourusername/quicommit.git
|
||||
cd quicommit
|
||||
cargo build --release
|
||||
```
|
||||
|
||||
可执行文件将位于 `target/release/quicommit`。
|
||||
|
||||
### 环境要求
|
||||
|
||||
- Rust 1.70或更高版本
|
||||
- Git 2.0或更高版本
|
||||
- AI功能可选:Ollama(本地)或OpenAI/Anthropic的API密钥
|
||||
|
||||
## 🚀 快速开始
|
||||
|
||||
### 1. 初始化配置
|
||||
|
||||
```bash
|
||||
quicommit init
|
||||
```
|
||||
|
||||
这将引导您完成第一个配置和LLM配置的设置。
|
||||
|
||||
### 2. 生成提交信息
|
||||
|
||||
```bash
|
||||
# AI生成提交信息(默认)
|
||||
quicommit commit
|
||||
|
||||
# 手动提交
|
||||
quicommit commit --manual -t feat -m "添加新功能"
|
||||
|
||||
# 基于日期的提交
|
||||
quicommit commit --date
|
||||
|
||||
# 暂存所有文件并提交
|
||||
quicommit commit -a
|
||||
```
|
||||
|
||||
### 3. 创建标签
|
||||
|
||||
```bash
|
||||
# 自动检测提交中的版本升级
|
||||
quicommit tag
|
||||
|
||||
# 指定版本升级
|
||||
quicommit tag --bump minor
|
||||
|
||||
# 自定义标签名
|
||||
quicommit tag -n v1.0.0
|
||||
```
|
||||
|
||||
### 4. 生成变更日志
|
||||
|
||||
```bash
|
||||
# 为未发布变更生成
|
||||
quicommit changelog
|
||||
|
||||
# 为特定版本生成
|
||||
quicommit changelog -v 1.0.0
|
||||
|
||||
# 初始化新的变更日志
|
||||
quicommit changelog --init
|
||||
```
|
||||
|
||||
## ⚙️ 配置说明
|
||||
|
||||
### 多配置管理
|
||||
|
||||
为不同场景管理多个Git身份:
|
||||
|
||||
```bash
|
||||
# 添加新配置
|
||||
quicommit profile add
|
||||
|
||||
# 查看配置列表
|
||||
quicommit profile list
|
||||
|
||||
# 切换配置
|
||||
quicommit profile switch
|
||||
|
||||
# 应用配置到当前仓库
|
||||
quicommit profile apply
|
||||
|
||||
# 为当前仓库设置配置
|
||||
quicommit profile set-repo personal
|
||||
```
|
||||
|
||||
### LLM提供商配置
|
||||
|
||||
#### Ollama(本地部署 - 推荐)
|
||||
|
||||
```bash
|
||||
# 配置Ollama
|
||||
quicommit config set-llm ollama
|
||||
|
||||
# 或使用特定设置
|
||||
quicommit config set-ollama --url http://localhost:11434 --model llama2
|
||||
```
|
||||
|
||||
#### OpenAI
|
||||
|
||||
```bash
|
||||
quicommit config set-llm openai
|
||||
quicommit config set-openai-key YOUR_API_KEY
|
||||
```
|
||||
|
||||
#### Anthropic Claude
|
||||
|
||||
```bash
|
||||
quicommit config set-llm anthropic
|
||||
quicommit config set-anthropic-key YOUR_API_KEY
|
||||
```
|
||||
|
||||
### 提交格式配置
|
||||
|
||||
```bash
|
||||
# 使用规范化提交(默认)
|
||||
quicommit config set-commit-format conventional
|
||||
|
||||
# 使用commitlint格式
|
||||
quicommit config set-commit-format commitlint
|
||||
```
|
||||
|
||||
## 📖 使用示例
|
||||
|
||||
### 交互式提交流程
|
||||
|
||||
```bash
|
||||
$ quicommit commit
|
||||
已暂存文件 (3):
|
||||
• src/main.rs
|
||||
• src/lib.rs
|
||||
• Cargo.toml
|
||||
|
||||
🤖 AI正在分析您的变更...
|
||||
|
||||
────────────────────────────────────────────────────────────
|
||||
生成的提交信息:
|
||||
────────────────────────────────────────────────────────────
|
||||
feat: 添加用户认证模块
|
||||
|
||||
实现OAuth2认证,支持GitHub和Google提供商。
|
||||
────────────────────────────────────────────────────────────
|
||||
|
||||
您希望如何操作?
|
||||
> ✓ 接受并提交
|
||||
🔄 重新生成
|
||||
✏️ 编辑
|
||||
❌ 取消
|
||||
```
|
||||
|
||||
### 配置管理
|
||||
|
||||
```bash
|
||||
# 创建工作配置
|
||||
$ quicommit profile add
|
||||
配置名称:work
|
||||
Git用户名:John Doe
|
||||
Git邮箱:john@company.com
|
||||
这是工作配置吗?yes
|
||||
组织机构:Acme Corp
|
||||
|
||||
# 为当前仓库设置
|
||||
$ quicommit profile set-repo work
|
||||
✓ 已为当前仓库设置'work'配置
|
||||
```
|
||||
|
||||
### 智能标签管理
|
||||
|
||||
```bash
|
||||
$ quicommit tag
|
||||
最新版本:v0.1.0
|
||||
|
||||
版本选择:
|
||||
> 从提交中自动检测升级
|
||||
主版本升级
|
||||
次版本升级
|
||||
修订版本升级
|
||||
|
||||
🤖 AI正在从15个提交中生成标签信息...
|
||||
|
||||
标签预览:
|
||||
名称: v0.2.0
|
||||
信息:
|
||||
## 变更内容
|
||||
|
||||
### 🚀 新功能
|
||||
- 添加用户认证
|
||||
- 实现仪表板
|
||||
|
||||
### 🐛 问题修复
|
||||
- 修复登录重定向问题
|
||||
|
||||
创建此标签?yes
|
||||
✓ 已创建标签 v0.2.0
|
||||
```
|
||||
|
||||
## 📁 配置文件
|
||||
|
||||
配置存储位置:
|
||||
|
||||
- **Linux**: `~/.config/quicommit/config.toml`
|
||||
- **macOS**: `~/Library/Application Support/quicommit/config.toml`
|
||||
- **Windows**: `%APPDATA%\quicommit\config.toml`
|
||||
|
||||
配置文件示例:
|
||||
|
||||
```toml
|
||||
version = "1"
|
||||
default_profile = "personal"
|
||||
|
||||
[profiles.personal]
|
||||
name = "personal"
|
||||
user_name = "John Doe"
|
||||
user_email = "john@example.com"
|
||||
|
||||
[profiles.work]
|
||||
name = "work"
|
||||
user_name = "John Doe"
|
||||
user_email = "john@company.com"
|
||||
is_work = true
|
||||
organization = "Acme Corp"
|
||||
|
||||
[llm]
|
||||
provider = "ollama"
|
||||
max_tokens = 500
|
||||
temperature = 0.7
|
||||
|
||||
[llm.ollama]
|
||||
url = "http://localhost:11434"
|
||||
model = "llama2"
|
||||
|
||||
[commit]
|
||||
format = "conventional"
|
||||
auto_generate = true
|
||||
max_subject_length = 100
|
||||
|
||||
[tag]
|
||||
version_prefix = "v"
|
||||
auto_generate = true
|
||||
include_changelog = true
|
||||
|
||||
[changelog]
|
||||
path = "CHANGELOG.md"
|
||||
auto_generate = true
|
||||
group_by_type = true
|
||||
```
|
||||
|
||||
## 🔧 环境变量
|
||||
|
||||
| 变量名 | 说明 |
|
||||
|--------|------|
|
||||
| `QUICOMMIT_CONFIG` | 配置文件路径 |
|
||||
| `EDITOR` | 交互式输入的默认编辑器 |
|
||||
| `NO_COLOR` | 禁用彩色输出 |
|
||||
|
||||
## 💻 Shell补全
|
||||
|
||||
### Bash
|
||||
```bash
|
||||
quicommit completions bash > /etc/bash_completion.d/quicommit
|
||||
```
|
||||
|
||||
### Zsh
|
||||
```bash
|
||||
quicommit completions zsh > /usr/local/share/zsh/site-functions/_quicommit
|
||||
```
|
||||
|
||||
### Fish
|
||||
```bash
|
||||
quicommit completions fish > ~/.config/fish/completions/quicommit.fish
|
||||
```
|
||||
|
||||
## 🔍 故障排除
|
||||
|
||||
### LLM连接问题
|
||||
|
||||
```bash
|
||||
# 测试LLM连接
|
||||
quicommit config test-llm
|
||||
|
||||
# 列出可用模型
|
||||
quicommit config list-models
|
||||
```
|
||||
|
||||
### Git操作
|
||||
|
||||
```bash
|
||||
# 查看当前配置
|
||||
quicommit profile show
|
||||
|
||||
# 应用配置修复git配置
|
||||
quicommit profile apply
|
||||
```
|
||||
|
||||
## 🤝 贡献指南
|
||||
|
||||
欢迎提交贡献!请随时提交Pull Request。
|
||||
|
||||
1. Fork本仓库
|
||||
2. 创建您的功能分支 (`git checkout -b feature/amazing-feature`)
|
||||
3. 提交您的变更 (`git commit -m 'feat: 添加令人惊叹的功能'`)
|
||||
4. 推送到分支 (`git push origin feature/amazing-feature`)
|
||||
5. 提交Pull Request
|
||||
|
||||
## 📄 许可证
|
||||
|
||||
本项目采用MIT或Apache-2.0许可证。
|
||||
|
||||
## 🙏 致谢
|
||||
|
||||
- [Conventional Commits](https://www.conventionalcommits.org/) 规范
|
||||
- [Keep a Changelog](https://keepachangelog.com/) 格式
|
||||
- [Ollama](https://ollama.ai/) 本地LLM支持
|
||||
Reference in New Issue
Block a user