吖昭的技术笔记
跟着吖昭写笔记,从 0 到 1 的技术成长看得见
文章48浏览1958本站已运行7723

《Git 版本控制入门:提交与分支管理》:讲解 git commit、git branch 等基础命令,分享吖昭常用的版本控制习惯。

《Git 版本控制入门:提交与分支管理》
对于开发者而言,Git 不仅是代码管理工具,更是团队协作的 “语言”。刚入职的吖昭曾因误删代码痛哭半小时,直到掌握 Git 的提交规范与分支管理技巧,才真正体会到 “版本控制” 的安全感。以下从基础命令到实战习惯,详解 Git 最核心commit提交branch分支管理,附新手避坑指南。
一、提交:用 git commit 记录代码的每一步成长
git commit 是 Git 最基础的命令,用于将暂存区的代码保存为一个 “版本快照”。但新手常犯的错误是 “堆积代码再提交”,导致版本记录混乱难以回溯。
1. 提交的完整流程

# 1. 查看工作区修改(红色为未暂存,绿色为已暂存)

吖昭的提交原则
  • 每次提交只做 “一件事”(如修复一个 bug、新增一个功能点),避免一次提交包含多个不相关修改。
  • 提交前用 git diff 检查修改内容,避免误提交调试代码(console.log)。
2. 提交信息规范:让历史记录 “会说话”
混乱的提交信息(如 “修改了点东西”“fix”)会让团队协作陷入困境。吖昭坚持使用 “类型:描述” 的格式:

# 功能新增
git commit -m "feat: 首页添加轮播图组件"
# 问题修复
git commit -m "fix: 解决移动端菜单点击无响应问题"
# 代码重构(不影响功能)
git commit -m "refactor: 拆分用户信息组件为子组件"
# 样式调整
git commit -m "style: 优化按钮 hover 效果"
# 文档更新
git commit -m "docs: 补API接口注释"

好处:通过 git log --grep "feat" 可快速筛选所有功能新增记录,定位问题时效率提升 3 倍。
3. 提交后的补救措施

# 提交后发现漏改内容,合并到上一次提交(不修改提交时间)
git add 漏改的文件
git commit --amend -m "feat: 新增用户登录功能(补充验证码校验)"
# 提交后发现错误,撤销最近一次提交(保留修改内容)
git reset --soft HEAD~1
# 此时修改内容回到暂存区,修正后重新提交

注意--amendreset 只适合修改本地未推送的提交,已推送到远程仓库的提交不要轻易修改。
二、分支管理:用 git branch 隔离开发与协作
分支是 Git 的 “灵魂功能”,能让多个功能并行开发而不互相干扰。吖昭刚学 Git 时曾main分支直接开发,导致线上代码被测试版本污染,后来用分支管理彻底解决了这个问题。
1. 分支基础操作

# 查看所有分支(* 表示当前所在分支)
git branch
# 创建新分支(基于当前分支)
git branch feature/payment # 支付功能开发分支
# 切换分支
git checkout feature/payment
# 或用新Git的简化命令
git switch feature/payment
# 创建并切换到新分支
git checkout -b bugfix/login-error
# 等价于
git switch -c bugfix/login-error
# 删除分支(需先切换到其他分支)
git branch -d feature/old-function # 删除已合并的分支
git branch -D feature/unused # 强制删除未合并的分支

2. 分支策略:吖昭团队的协作规范
  • main 分支:存放可部署的稳定代码,任何人不得直接在该分支提交。
  • develop 分支:开发主分支,包含下一个版本的功能,由各功能分支合并而来。
  • feature/xxx 分支:新功能开发分支(feature/user-profile),develop创建,完成后合并develop
  • bugfix/xxx 分支:修复开发中的问题(bugfix/form-validation),develop创建,修复后合并develop
  • hotfix/xxx 分支:紧急修复线上问题(hotfix/login-security),main创建,修复后同时合并maindevelop
3. 分支合并:将功能 “安全上线”

--no-ff 的作用:保留分支合并记录,通过 git log --graph 可清晰看到功能开发的分支轨迹。
4. 解决合并冲突
当多人修改同一文件的同一部分时,合并会产生冲突:

吖昭的冲突预防技巧:每天开发前 git pull 拉取最新代码,减少多人修改重叠的概率;小步高频合并,避免分支长期不同步导致大量冲突。
三、版本回溯:用分支与标签定位历史

# 查看提交历史(简洁版)
git log --oneline --graph
# 输出示例:
# * a1b2c3d (HEAD -> develop) fix: 修复表单验证
# * 4e5f6g merge: 合并支付功能
# |\
# | * 7h8i9j (feature/payment) feat: 新增支付宝支付
# | * 2k3l4m feat: 新增微信支付
# * | 5n6o7p feat: 优化商品列表加载速度
# 回滚到指定版本(创建新分支保留历史)
git checkout a1b2c3d -b revert-to-old-version
# 给重要版本打标签(如发布版本)
git tag v1.0.0 # 基于当前提交创建标签
git tag -a v1.0.0 -m "正式发1.0版本" # 带说明的标签
# 推送标签到远程
git push origin v1.0.0

场景:线上版本出现严重 bug 时,通过 git checkout v1.0.0 可快速回滚到上一个稳定版本,再hotfix分支修复问题。
四、吖昭的日常工作流
  1. 上班第一件事:git switch developgit pull 获取最新代码。
  1. 开发新功能:git switch -c feature/xxx 新建分支。
  1. 每完成一个小功能:git add .git commit -m "feat: xxx" 提交。
  1. 下班前:git push origin feature/xxx 推送分支到远程备份。
  1. 功能完成:在 Git 平台(如 GitHub、GitLab)发起合并请求(MR/PR),请求同事代码审查。
  1. 审查通过后:合并develop分支,删除功能分支。
总结:版本控制的核心思维
Git 的命令并不复杂,难的是养成良好的使用习惯。吖昭的经验是:把每次提交当作 “保存游戏进度”,把分支当作 “不同的游戏存档”,既不怕误操作,也能轻松协作。记住:好的版本控制不是记录历史,而是让历史成为开发的助力
上一篇:
下一篇:

相关推荐

你必须 登录 才能发表评论.

隐藏边栏