/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` 推送到远程仓库。
请开始执行。
|