首页 > 编程知识 正文

Git分支管理规范和解析

时间:2023-05-05 06:08:44 阅读:189115 作者:637

quick_startwhy_git仓库和分支管理 远程和本地 origin远程仓库本地仓库 分支管理 主分支master主分支developdev主分支releasetest支持分支feature支持分支hotfix 实战 参与新项目新需求开发提交修改代码到本地分支合并到dev分支合并冲突merge git命令git_GUI参考

quick_start 安装git工具可以使用git命令行,启动命令行工具 git官网下载 ssh-keygen -t rsa -C “youremail” vim ~/.ssh/id_rsa.pub 将公有钥匙设置到 http://xxx.xxx.xxx.xxx/profile/keyscd /f/gitProjectgit clone git@xxxxxxxxx.gitgit branch -a 查看自己所在分支和所有远程分支git checkout dev 切换到dev开发分支git branch feature/{yourname}_{workdetail} 在dev上创建自己的开发分支随便修改一个文件,并增加一个类文件git status 查看修改的文件状态git diff 查看修改内容git add . 暂存修改的文档git commit -m ‘my first commit’ 提交修改内容git push origin feature/{yourname}_{workdetail} 提交到远程的自己的开发分支git checkout dev 切换到自己的父分支git pull origin dev 跟新本地的dev分支git checkout feature/{yourname}_{workdetail} 切换到自己分支git merge dev 将dev上别人的修改合并git status 查看是否有修改,如果有修改执行git commit -agit checkout dev 切换到自己的父分支got merge feature/{yourname}_{workdetail}将自己的修改合并到大家共同的开发父分支 why_git 把在CVS/SVN传统中很高级的话题“分支”、“合并”入门化,成为基础操作中央仓库定义为origin,克隆代码到本地之后对本地所有分支有update,commit权限,同样不联网状态下也可以commit代码速度更快分布式但是又集中化管理 更多对比和好处缺点参考 GitSvnComparison

git是一个版本控制系统,不仅可以控制代码,任何文件都可以通过git进行版本控制

仓库和分支管理 远程和本地


origin远程仓库

上图中origin是团队的中央仓库,整个团队共同维护,每个仓库可以简单理解成一个目录,这个目录里面的所有文件都通过Git来实现版本管理
每个开发者都可以从远程clone代码并且新建本地分支和push新建分支到远程仓库,并且也可以从其他开发者的远程分支fetch代码。

本地仓库

上图中的zrdsw和稳重的画板等都是本地分支,本地可以通过clone远程分支或者init建立本地仓库,这个目录中有一个“.git”的文件夹。
这个文件夹非常重要,所有的版本信息,更新记录,以及Git进行仓库管理的相关信息全部保存在这个文件夹里面。不要修改/删除其中的文件,以免造成数据的丢失。

分支管理


上图涵盖了开发过程中各种情况的分支流程

(主分支)master 线上分支:时刻保持与线上代码一致,理论上是每次master更新后,都需要通过自动化部署工具进行上线发布 (主分支)develop(dev) 开发分支:任何迭代需求分支都以这个分支为父分支进行建立 (主分支)release(test) 预发布分支:开发完成和将一个迭代的所有修改合并到该分支供测试人员测试 (支持分支)feature feature分支是短期的一个需求开发过程中创建的一个特性分支,理论上每一个需求可以细分成一个特性分支,一次迭代可能会细分出5-6个特性分支继承分支 dev合并分支 dev命名规范:除了master,develop,,hotfix-*,建议新建文件夹方式feature/xxxx (支持分支)hotfix hotfix分支是为了解决一个紧急的线上问题而建立的分支继承分支 master合并分支 dev master命名规范:除了master,develop,feature-*,建议新建文件夹方式hotfix/xxxx

关于分支管理可以详细参考这篇文章a-successful-git-branching-model
译文:https://wenku.baidu.com/view/2450c7fdaef8941ea76e055f.html

实战 参与新项目 cd /f/gitProjectgit clone git@xxxxxx.git 新需求开发 git branch -a 查看自己所在分支和所有远程分支git checkout dev 切换到dev开发分支git branch feature/{yourname}_{workdetail} 在dev上创建自己的开发分支 提交修改代码到本地分支 git status 查看修改的文件状态git diff 查看修改内容git add . 暂存修改的文档git commit -m ‘my first commit’ 提交修改内容 合并到dev分支 git checkout dev 切换到自己的父分支git pull origin dev 跟新本地的dev分支git checkout feature/{yourname}_{workdetail} 切换到自己分支git merge dev 将dev上别人的修改合并git status 查看是否有修改,如果有修改执行git commit -agit checkout dev 切换到自己的父分支got merge feature/{yourname}_{workdetail}将自己的修改合并到大家共同的开发父分支 合并冲突merge 当在合并分支出现冲突的时候,建议使用idea等可视化工具进行合并例如idea右键工程->Git->Resolve Conflicts->弹框中点击merge->然后根据情况选择接受服务器版本还是本地版本->apply/abort git命令

git的命令非常多 基本常用的有:
* git config –global user.name “xxx” 配置用户名
* git config –global user.email “xxx@xxx.com” 配置邮件
* git clone git@xxxxxx.git clone远程仓库
* git branch 查看当前分支
* git checkout dev 切换到dev分支
* git pull origin dev 拉取远程dev分支并merge到当前分支
* git branch feature/reward 创建需求reward分支
* git status 查看当前版本状态(是否修改)
* git diff 查看修改内容
* git commit -m ‘xxx’ 提交
* git log -5 显示5行日志

更多可以参考官方手册 git命令手册

git_GUI

git 官网 提供了很多git可视化工具连接,随便选用一个使用即可。
source tree功能比较成熟,但是注册安装需要翻墙

参考 想要深入理解git 参考 git dochttp://nvie.com/posts/a-successful-git-branching-model By Vincent Driessenhttps://git.wiki.kernel.org/index.php/GitSvnComparsionhttps://git-scm.com/docshttps://gist.github.com/guweigang/9848271

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。