| name | git-sop |
| description | Git 标准操作流程 SOP,包含 init、add、commit、push、status、log、pull 等常用操作及自动检查验证。使用场景:用户要求执行 git 操作时。 |
Git SOP - 标准操作流程
执行任何 Git 操作前,遵循此 SOP。自动检查是强制步骤,每个操作后必须验证执行结果。
核心原则
- 先检查,后操作 - 使用
git status 和 git log 了解当前状态
- 小步提交 - 每个提交聚焦单一变更,便于追溯和回滚
- 操作后验证 - 每个 Git 命令执行后必须运行验证命令确认结果
- 危险操作需确认 - push --force、reset --hard、branch -D 等破坏性操作需用户确认
SOP 流程
SOP 1: git init
初始化新仓库。
执行命令:
git init
自动检查:
ls -la .git && git status
验证标准:
.git 目录存在且包含必要文件(HEAD, config, objects, refs)
- 当前分支为
main 或 master
- 工作区状态为 "No commits yet"
SOP 2: git add
暂存文件变更。
执行命令:
git add -A
git add <file>
git add <directory>/
git add -p
自动检查:
git status
验证标准:
- 暂存区显示待提交的文件(绿色)
- 未暂存文件清晰列出(红色)
- 确认没有意外文件被暂存(如 .env, node_modules, *.log)
SOP 3: git commit
提交暂存区变更。
执行命令:
git commit -m "<type>: <subject>
<body>
<footer>"
type 规范:
| type | 说明 |
|---|
| feat | 新功能 |
| fix | 修复 bug |
| docs | 文档更新 |
| style | 代码格式(不影响功能) |
| refactor | 重构(不影响功能) |
| test | 测试相关 |
| chore | 构建/工具变动 |
自动检查:
git log --oneline -1 && git status
验证标准:
- commit 已创建,hash 可查看
- 工作区状态为 "nothing to commit, working tree clean"
- commit message 格式正确
SOP 4: git push
推送提交到远程仓库。
执行命令:
git push
git push -u origin <branch>
git push --force-with-lease
⚠️ 危险操作警告:
--force 会覆盖远程历史,必须先确认无其他人在该分支工作
- 推荐使用
--force-with-lease 而非 --force
自动检查:
git status && git log --oneline -3
验证标准:
- push 成功,无错误
- 本地分支已跟踪远程分支
- 远程仓库可查看到新提交
SOP 5: git status
查看工作区状态。
执行命令:
git status
自动检查:
git status --short
验证标准:
- 清晰显示:当前分支、暂存区文件、未跟踪文件
- 无意外的大文件或敏感文件
SOP 6: git log
查看提交历史。
执行命令:
git log --oneline -10
git log --pretty=format:"%h %an %s" -10
git log --oneline -- <file>
git log --graph --oneline --all -15
自动检查:
git log --oneline -3
验证标准:
- 确认最新提交是你刚做的
- commit message 清晰可读
SOP 7: git pull
拉取远程变更并合并。
执行命令:
git pull
git pull --rebase
git pull origin <branch>
⚠️ 潜在冲突警告:
- 如果有冲突,Git 会暂停并标记冲突文件
- 冲突解决后需要
git add 和 git rebase --continue
自动检查:
git status && git log --oneline -3
验证标准:
- 无冲突提示
- 工作区已更新
- 提交历史包含远程的新提交
完整工作流示例
场景: 提交一个 bug 修复
1. 检查当前状态
git status && git log --oneline -3
2. 修复代码...
3. 暂存变更
git add -A
git status # 验证暂存内容
4. 提交变更
git commit -m "fix: resolve null pointer in user service
- add null check before accessing user profile
- add unit test for edge case"
5. 推送提交
git push
git status # 验证推送成功
常见问题处理
问题: 提交信息写错
git commit --amend -m "correct message"
git commit --amend -m "correct message"
git push --force-with-lease
问题: 暂存了不想提交的文件
git reset HEAD <file>
git reset HEAD
问题: 工作区有未提交的变更但需要切换分支
git stash
git checkout <other-branch>
git stash pop
git checkout -f <other-branch>
问题: 推送被拒绝(远程有更新)
git pull --rebase
git push
git pull
git add -A
git commit
git push
自动检查清单
每个 Git 操作后必须确认: