/auto-git 命令用于自动添加修改文件到工作区并提交:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
---
description: 自动执行 git add、commit 和 push,遵循标准提交规范
---

# 任务: 自动化 Git 提交流程

请按照以下步骤执行标准的 Git 提交流程:

**第一步: 检查变更和分支状态**

1. 运行 `git status` 查看当前变更
2. 运行 `git diff` 分析具体改动内容
3. 运行 `git branch --show-current` 获取当前分支名
4. 运行 `git remote show origin | grep "HEAD branch"` 或 `git symbolic-ref refs/remotes/origin/HEAD` 确定主分支名称(通常是 main 或 master)
5. 记录当前是否在开发分支上(非主分支)

**第二步: 检查 .gitignore 配置**

1. 查看当前 .gitignore 文件内容
2. 检查 `git status` 中显示的未跟踪文件(Untracked files)
3. 分析这些文件类型,判断是否需要添加到 .gitignore:
- 依赖目录(node_modules、venv、__pycache__ 等)
- 构建产物(dist、build、*.pyc 等)
- 环境配置(.env、.env.local 等)
- IDE 配置(.vscode、.idea、*.swp 等)
- 系统文件(.DS_Store、Thumbs.db 等)
- 日志文件(*.log、logs/ 等)
- 临时文件(*.tmp、*.cache 等)
4. 如果发现需要忽略的文件,询问用户是否更新 .gitignore
5. 如果用户同意,更新 .gitignore 文件并说明添加的规则

**第三步: 生成符合规范的提交信息**

根据代码变更,生成符合 Conventional Commits 规范的提交信息:

格式:`<type>(<scope>): <subject>`

- **type**: feat(新功能)、fix(修复)、docs(文档)、style(格式)、refactor(重构)、test(测试)、chore(构建/工具)
- **scope**: 影响的模块或文件范围(可选)
- **subject**: 简短描述(50字符内,动词开头,不加句号)

如果有重大变更,添加 `BREAKING CHANGE:` 说明。

**第四步: 执行 Git 操作**

1. 执行 `git add -A` 暂存所有变更
2. 使用生成的提交信息执行 `git commit -m "<提交信息>"`

**第五步: 处理分支合并(如果在开发分支上)**

如果当前在开发分支上(非主分支):

1. 切换到主分支:`git checkout <主分支名>`
2. 合并开发分支:`git merge <开发分支名> --no-ff -m "Merge branch '<开发分支名>'"`
- 使用 `--no-ff` 保留分支历史记录
3. 报告:已完成开发分支的合并
4. 提示用户:如果确认合并成功,可以使用以下命令删除开发分支:
- 删除本地分支:`git branch -d <开发分支名>`
- 如果有远程分支:`git push origin --delete <开发分支名>`

如果当前在主分支上:

1. 报告:已完成提交

**第六步: 确认完成**

报告所有操作的结果和当前分支状态。不需要执行 `git push` 推送到远程仓库。

请开始执行。