Git工作流梳理
2024-08-23 14:08:33 7 举报
AI智能生成
开发者常见git工作流梳理
作者其他创作
大纲/内容
使用master作为默认的开发分支且所有提交操作都在该分支上。 这种工作流除了master分支外,不需要任何其他分支。
特点
集中式工作流通常更适合从 SVN 迁移到 Git 的团队以及规模较小的团队。
适合场景
git clone ssh://user@host/path/to/repo.git
拉取代码
git status # 查看仓库状态git add # 暂存git commit # 提交
修改&提交
git pull # 更新git push # 推送
更新&推送
git pull --rebase origin master # 拉取代码# 解决冲突之后git add# 合并冲突,结合 git add 命令一起用于修复冲突(fix conflicts and then run \"git rebase --continue\")git rebase --continue # 发现问题,撤回冲突解决前# git rebase --abort # 放弃合并,回到rebase操作之前的状态,之前的提交不会丢弃;# 解决完重新推送git push
冲突解决
流程
集中式工作流
所有功能开发应在专用分支而不是master分支中进行,master分支用于和线上同步,保持稳定。
小团队、参与人数少的项目团队、需求迭代频繁且经常调整需求的情况
git checkout master # 切换到 master 分支git fetch origin # 提取最新的提交git reset --hard origin/master # 重置仓库的master本地副本
更新主(master)分支
git checkout -b feat_xxx
创建新分支
git status # 查看状态git add <some-file> # 暂存文件git commit # 提交更改
更新&提交
git push -u origin new-feature# 完了之后发送合并请求
推送
同“集中式工作流”冲突解决方案
功能分支工作流
Gitflow 工作流定义了围绕项目发行版设计的严格分支模型,这为管理较大的项目提供了一个强大的框架。
借助git-flow工具集(brew install git-flow),可以简化操作命令
有预定发布周期的(如安卓、IOS开发周期)、较大项目的团队,DevOps持续交付
# 在项目中执行初始化git flow init# 查看分支结构git branch # * develop# master
初始化项目分支(develop和master)
# 不使用git-flow 扩展工具方式:git checkout developgit checkout -b feature_branch# 使用git-flow 扩展工具方式:git flow feature start feature_branch
创建功能分支(基于develop)
# 不使用git-flow 扩展工具方式:git checkout developgit merge feature_branch# 使用git-flow 扩展工具方式:git flow feature finish feature_branch
功能开发完成(合并到develop)
# 不使用git-flow 扩展工具方式:git checkout developgit checkout -b release/0.1.0# 使用git-flow 扩展工具方式:$ git flow release start 0.1.0Switched to a new branch 'release/0.1.0'
(重复上面两步)多个功能完成合并到develop之后,基于develop创建一个发行分支(release)创建此分支将开始下一个发行周期,因此此刻之后不能添加任何新功能,该分支中仅应包含错误修复、文档生成以及其他面向发行版的任务
# 不使用git-flow 扩展工具方式:git checkout mastergit merge release/0.1.0# 重新合并到develop分支很重要git checkout developgit merge release/0.1.0git branch -D release/0.1.0# 使用git-flow 扩展工具方式:git flow release finish '0.1.0'
完成发行分支(发布分支将被删除)
# 不使用git-flow 扩展工具方式:git checkout mastergit checkout -b hotfix_branch# 使用git-flow 扩展工具方式:git flow hotfix start hotfix_branch
热修分支hotfix(基于master)用于快速修补生产版本
# 不使用git-flow 扩展工具方式:git checkout mastergit merge hotfix_branchgit checkout developgit merge hotfix_branchgit branch -D hotfix_branch# 使用git-flow 扩展工具方式:git flow hotfix finish hotfix_branch
完成热修(同样需要合并到master和develop)
GitFlow工作流
两个远程仓库:一个主远程仓库(只有读权限)和一个私有远程仓库(派生自主远程仓库)
开发操作在私有仓库中,通过PR的方式更新主远程仓库
派生工作流的主要优点是可以集成贡献,而无需每个人都将其推送到主远程仓库。
开源项目、有发布部署管理或严格发布周期的团队
git clone https://user@bitbucket.org/user/repo.git
克隆主远程仓库
git remote add upstream https://bitbucket.org/maintainer/repo# 身份验证# git remote add upstream https://user@bitbucket.org/maintainer/repo.git
添加远程跟踪分支
# 开发过程中及时同步主远程仓库代码git pull upstream master# 创建功能分支进行开发git checkout -b some-featuregit commit -a -m \"xxx\"
开发&更新
# 将更新同步到私有远程仓库git push origin feature-branch # 然后通过私有远程仓库向主远程仓库发PR
发起合并请求
派生工作流(Forking Workflow)
Github Flow
Gitlab Flow
其他
Git工作流
0 条评论
回复 删除
下一页