题目
描述一次标准的Git工作流程
信息
- 类型:问答
- 难度:⭐
考点
版本控制基本流程,分支使用,提交规范,远程仓库协作
快速回答
标准Git工作流程包含以下核心步骤:
- 从远程仓库拉取最新代码:
git pull origin main - 创建功能分支:
git checkout -b feature/new-login - 编写代码并添加更改:
git add . - 提交更改(含清晰描述):
git commit -m '添加用户登录验证逻辑' - 推送分支到远程:
git push origin feature/new-login - 创建合并请求(Pull Request)进行代码审查
原理说明
Git工作流程是团队协作的基础,核心目标是保证代码变更可追溯、减少冲突、促进代码审查。基于分支的策略(如Git Flow)将开发隔离在不同分支,主分支(main/master)始终保持可部署状态。
完整步骤详解
- 同步最新代码
git pull origin main
避免基于过时代码开发,减少后续冲突 - 创建功能分支
git checkout -b feature/描述性名称
分支命名规范示例:- feature/user-auth(新功能)
- fix/payment-error(问题修复)
- docs/readme-update(文档更新)
- 开发与暂存更改
git add 文件名或git add .
推荐分次提交关联修改,避免git add .包含无关文件 - 提交更改
git commit -m '清晰描述'
提交消息规范:- 格式:<动词> <模块> <具体变更>
- 示例:'修复用户注册邮箱验证逻辑'
- 避免模糊消息如'update'或'fix bug'
- 推送分支
git push origin 分支名
首次推送需添加-u参数建立追踪 - 创建合并请求(PR/MR)
在GitLab/GitHub平台操作,包含:- 关联的任务编号(如JIRA ID)
- 变更说明和测试验证步骤
- 指定审查者
最佳实践
- 分支策略:功能分支生命周期不超过2天,及时合并
- 提交原子化:每次提交只解决一个问题,便于回滚
- .gitignore配置:排除编译文件、环境配置等
- 预检:推送前运行本地测试和
git diff检查
常见错误
- ❌ 直接在main分支开发
- ❌ 提交包含调试代码(如
console.log) - ❌ 提交消息无具体上下文(如'fix bug')
- ❌ 未同步最新代码导致合并冲突
扩展知识
- Git Flow:标准化的分支模型(含develop/release分支)
- 交互式暂存:
git add -p选择性提交部分修改 - 钩子(Hooks):预提交检查(如
pre-commit运行lint) - 撤销操作:
- 撤销暂存:
git restore --staged 文件 - 修改提交:
git commit --amend
- 撤销暂存: