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