Git工作流程概述
Git是一个分布式版本控制系统,广泛用于代码管理和协作开发。了解Git的工作流程有助于高效管理代码变更,减少冲突,并确保团队协作顺畅。下面从常见的工作流程模式、分支策略到具体操作展开说明。
基本概念与核心流程
Git的核心流程围绕仓库(Repository)、分支(Branch)、提交(Commit)展开。每个开发者拥有完整的仓库副本,通过拉取(Pull)和推送(Push)同步变更。典型操作包括:
- 初始化仓库
git init
- 克隆远程仓库
git clone <repository_url>
集中式工作流(Centralized Workflow)
适合小型团队或简单项目,所有开发者直接向主分支(如main
)提交变更。
操作步骤
- 拉取最新代码:
git pull origin main
- 提交变更并推送:
git add . git commit -m "fix: update login validation" git push origin main
冲突处理
若多人同时修改同一文件,需手动解决冲突后重新提交:
git pull origin main
# 解决冲突后
git add .
git commit -m "resolve merge conflict"
git push origin main
功能分支工作流(Feature Branch Workflow)
每个新功能或修复在独立分支开发,完成后通过合并请求(Merge Request)或拉取请求(Pull Request)集成到主分支。
示例流程
- 创建功能分支:
git checkout -b feature/user-auth
- 开发完成后推送到远程:
git push origin feature/user-auth
- 在GitHub/GitLab创建Pull Request,由团队审核后合并。
Git Flow工作流
定义严格的分支模型,适合长期维护的复杂项目。核心分支包括:
main
:稳定生产代码develop
:集成最新开发内容feature/*
:功能开发分支release/*
:预发布分支hotfix/*
:紧急修复分支
操作示例
- 基于
develop
创建功能分支:git checkout -b feature/payment develop
- 发布新版本时创建
release
分支:git checkout -b release/1.0.0 develop
- 紧急修复直接从
main
创建hotfix
分支:git checkout -b hotfix/login-bug main
Forking工作流
常见于开源项目,贡献者先Fork仓库,在本地修改后提交Pull Request。
典型步骤
- Fork远程仓库到个人账号下。
- 克隆Fork后的仓库:
git clone https://github.com/yourname/project.git
- 添加上游仓库(原始项目):
git remote add upstream https://github.com/original/project.git
- 同步上游变更:
git fetch upstream git merge upstream/main
变基(Rebase)与合并(Merge)
两种集成分支变更的方式:
变基示例
将当前分支的提交“移动”到目标分支最新提交之后:
git checkout feature/search
git rebase main
# 解决冲突后继续
git rebase --continue
合并示例
保留分支历史记录,生成合并提交:
git checkout main
git merge feature/search
钩子(Hooks)与自动化
Git支持在特定事件触发自定义脚本,例如提交前运行测试:
# .git/hooks/pre-commit
#!/bin/sh
npm test
常见问题与解决方案
撤销本地提交
# 撤销上一次提交,保留更改
git reset --soft HEAD~1
# 彻底丢弃未提交的更改
git reset --hard
找回误删分支
git reflog
git checkout -b recovered-branch <commit_hash>
高级技巧
交互式变基(Interactive Rebase)
合并或修改提交历史:
git rebase -i HEAD~3
暂存更改(Stash)
临时保存未完成的修改:
git stash
git stash pop
本站部分内容来自互联网,一切版权均归源网站或源作者所有。
如果侵犯了你的权益请来信告知我们删除。邮箱:cc@cccx.cn
上一篇:分布式版本控制的特点
下一篇:Git的基本术语解释