Appearance
第10章:企业级实战(综合应用)
实战 3:多人协作项目(完整流程)
10.1 项目架构与分支规划(master、develop、feature 分支)
在企业级项目中,合理的分支管理策略至关重要。以下是一种常见的分支管理模型:
- master/main 分支:主分支,用于存放稳定的生产代码,仅用于版本发布。
- develop 分支:开发分支,集成所有功能开发完成的代码,作为下一个版本的候选分支。
- feature 分支:功能分支,每个新功能或bug修复都在独立的feature分支上开发。
- release 分支:发布分支,用于准备版本发布,进行最后的测试和修复。
- hotfix 分支:热修复分支,用于紧急修复生产环境中的问题。
10.2 日常开发流程(拉取最新代码、开发、提交、推送)
拉取最新代码:
bash# 切换到develop分支 git checkout develop # 拉取远程最新代码 git pull origin develop创建功能分支:
bash# 创建并切换到新的feature分支 git checkout -b feature/new-feature代码开发:在本地进行代码编写和修改。
提交代码:
bash# 添加修改的文件 git add . # 提交代码,使用规范的提交信息 git commit -m "feat: 添加新功能描述"推送分支:
bash# 推送到远程仓库 git push origin feature/new-feature创建合并请求:在GitHub/Gitee上创建从feature分支到develop分支的合并请求。
代码审查:团队成员审查代码,提出修改建议。
合并代码:审查通过后,将feature分支合并到develop分支。
删除分支:
bash# 删除本地分支 git branch -d feature/new-feature # 删除远程分支 git push origin --delete feature/new-feature
10.3 合并冲突高频场景与解决方案
高频场景1:多人修改同一文件
解决方案:
拉取最新代码时遇到冲突:
bashgit pull # 系统提示冲突文件手动编辑冲突文件,解决冲突:
- 找到冲突标记
<<<<<<< HEAD、=======和>>>>>>> branch-name - 保留需要的代码,删除冲突标记
- 找到冲突标记
提交冲突解决:
bashgit add . git commit -m "fix: 解决合并冲突" git push
高频场景2:分支合并时的冲突
解决方案:
尝试合并分支:
bashgit checkout develop git merge feature/new-feature # 系统提示冲突解决冲突(同上)
完成合并:
bashgit add . git commit -m "merge: 合并feature分支" git push origin develop
10.4 版本发布与标签管理(git tag 命令)
创建标签:
bash# 切换到要打标签的分支 git checkout master # 创建带注释的标签 git tag -a v1.0.0 -m "版本1.0.0发布" # 创建轻量标签 git tag v1.0.0-light查看标签:
bash# 列出所有标签 git tag # 查看标签详情 git show v1.0.0推送标签:
bash# 推送单个标签 git push origin v1.0.0 # 推送所有标签 git push origin --tags删除标签:
bash# 删除本地标签 git tag -d v1.0.0 # 删除远程标签 git push origin --delete v1.0.0
10.5 项目备份与异常恢复(实战场景)
场景1:本地仓库损坏
解决方案:
从远程仓库重新克隆:
bashgit clone <远程仓库地址> new-repo cd new-repo恢复本地未提交的修改(如果有):
- 从损坏的仓库复制未提交的文件到新仓库
场景2:远程仓库故障
解决方案:
创建新的远程仓库
关联新的远程仓库:
bashgit remote set-url origin <新的远程仓库地址> # 或者添加新的远程仓库 git remote add new-origin <新的远程仓库地址>推送所有分支和标签:
bashgit push new-origin --all git push new-origin --tags
场景3:误删除分支
解决方案:
查找被删除分支的最后一次提交:
bashgit reflog恢复分支:
bashgit checkout -b <分支名> <提交哈希值>
通过以上企业级实战案例,你可以掌握Git在团队协作中的完整流程和常见问题的解决方法,为实际工作做好准备。
