这篇文章我们来讲一下git在idea上的使用,以及在实际开发过程中各个分支的使用及其具体的流程

目录

1.git在idea上的使用

1.1 idea上的git提交

1.2 idea上的分支切换

2.git在实际运用时的分支及其流程

2.1分支介绍

2.2具体流程

3.小结


1.git在idea上的使用

1.1 idea上的git提交

git大家都会使用,比如从远程拉取一个项目,git clone+ssh地址 一下,然后想把项目提交到远程仓库了,就走那一套git流程

但是,麻烦吗?有点麻烦。有没有简单点的方法?有

idea是一款强大的工具,它集成了一些小插件的功能,其中就包括git

如下图所示:这就是idea上集成的git功能区

下面介绍一下这三个按钮的作用:

1. 这个是拉项目用的,相当于git pull命令,就是最新化当前的项目(注意:拉取时一定要选择Rebase,不要选择Merge)

2.这个是提交到暂存区用的,相当于git commit -m"xxx"命令

注意:如果你的这个改动希望别人也看到,那你就commit这个文件,如果你这个改动不希望别看到,那就不要commit这个文件

3.这个按钮就是将暂存区的文件提交到远程仓库用的,相当于git push

 1.2 idea上的分支切换

首先,我们来看一下git上的分支切换的地方:

接下来说一个比较难懂的东西。

情况如下:

假设,我现在有两个分支,一个master分支,一个dev分支,这两个分支里面都有一个yml文件,这个yml文件的内容是一样的,假设其中有一个数据为10087

现在我做如下操作:

现在,我在master分支下,将yml文件中的数据10087修改为10086,但是我不commit这个文件,然后我切换到dev分支下,此时你会发现,dev分支下的这个yml文件中的数据也变为10086了,不是原来的10087了

但是,如果我在master分支下修改后,commit了,然后再切换到dev分支下,这时dev分支下的yml文件中的数据依然为10087,不会变为10086

很神奇的一个现象

2.git在实际运用时的分支及其流程

下面聊一聊git在实际开发运行时的分支情况和开发流程

2.1分支介绍

  • dev:开发环境;从feature去merge
  • test:测试环境;从feature去merge
  • pre/releace: 预生产环境;从master去merge,为了验证master代码
  • master:生产环境;从feature去merge
  • feature_xxx: 开发分支;增加小功能;创建的时候,从master拉取
  • hotfix_xxx: bug修复分支;从master拉取

2.2具体流程

下面来看一下实际开发中的具体流程(如下图所示):

 解释:

首先,我们一款产品,开发好了是放在master分支下的,也就是生产环境。然后,我们根据市场变化,需要增加或删除某些功能,即需要对这款产品进行修改时,我们从master中拉取项目,并且创建一个新的分支,命名为feature_xxx,然后我们在这个分支下进行修改。当我们需要多人开发时,我们就将这个分支合并到dev分支上,然后大家分模块进行开发,这样你修改后的代码就到开发环境了。当开发完成后,要进行测试,我们就需要从feature_xxx分支merge到test分支,在test分支下测试。OK,测试没问题了,测试通过了,这时我们需要从feature_xxx分支merge到master分支,然后再从master分支merge到pre分支,在预生产环境下进行测试,OK,测试没问题了,那么就把master分支里的内容发布,这样一款新产品就发布了。

如果在pre分支下测试出现问题了,那么就要在feature_xxx分支下继续进行修改,然后test,然后从master到pre,然后在发布。

如果产品发布了,突然出现了一个bug,这时就直接从master分支下拉取创建一个hotfix_xxx分支,然后在hotfix_xxx分支下进行修改,修改完成后再到pre,pre里没问题了,在从per到master,然后再发布。

问:为什么不直接从dev到test?

答:dev是合作开发的环境,里面集成了所有的,如果只要一个人有问题,那么test就不会通过,这样其他人也不能进行下一步了,会延误开发时期,所以就是从feature_xxx分支merge到test,然后再进行下一步。

注意:所有的特性分支都不允许push,能push的分支只有feature分支,这样做的目的是方便代码review,并且要知道merge也是需要审批的,即需要组长审批,审批通过了才能merge

3.小结

这篇文章的实操性和理论性都比较强,是属于那种不起眼,但是有时候需要用的东西,一般这种东西是最麻烦的。第一部分讲了idea中的git操作,有一说一,idea是yyds;第二部分讲了实际开发过程中的分支情况,这个目前自己写的话用不着,进公司了会用到的。

至于git的相关指令和其他内容,可以看我的其他文章

杂记——14.git在idea上的使用及其实际开发介绍相关推荐

  1. IDEA 使用Git回滚到上一个版本

    IDEA 使用Git回滚到上一个版本 一.版本介绍 目前有两个历史版本: v1 版本号:xxxc7f v2 版本号:xxxbcd 需求:从当前所在的v2跳转到v1 二.选择需要回退的版本 三.选择自己 ...

  2. 在Ubuntu 14.04.5 64bit上安装git GUI客户端GitKraken

    git的图像化管理工具很多,有两个是比较推荐用的,sourceTree以及GitKraken.个人比较喜欢GitKraken.下面是我在Ubuntu 14.04.5 64bit上的安装过程. 从官网下 ...

  3. 【重要】使用Git命令行上传到GitHub上

    [本人GitHub账号:] 用户名:chenhongshuang 密码:shuangshuang6300 邮箱:2452420371@qq.com 进入GitHub账号后 1·新建项目文件名称例dem ...

  4. git学习与上传方法

    git命令学习与上传方法 git命令 本地管理 远程仓库管理 分支管理.多人协作.bug分支 标签管理 参与开源项目 gitee关联库 git 特殊用法 上传提交方法 git命令 自己学习git的使用 ...

  5. 如何用git命令行上传本地代码到github

    如何用git命令行上传本地代码到github 2016年09月19日 16:10:36 阅读数:9337 注意:安装的前提条件是配置好git的相关环境或者安装好git.exe,此处不再重点提及 上传的 ...

  6. R,Git和Github(上)

    作者:Wenhu 博客:http://bioinfostar.com/ 本讲为第一部分,介绍git的"足够你用"命令:第二部分,还将介绍github的主要用途以及如何在R中使用gi ...

  7. tensorflow1.14.0安装不上,报错

    pip install tensorflow==1.14.0 -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow1.14.0安装不上,报错 M ...

  8. 用Git向gitHub上传项目

    用Git向gitHub上传项目 1.安装git 2.在git安装目录下,运行git-bash.exe  如图所示 3.在git中绑定你注册gitHub是的用户名.邮箱. $ git config -- ...

  9. 使用git修复线上指定版本的问题

    作为一个码农,bug就像家常便饭一样.有了bug就需要修复,在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除. 今天我们就来聊聊 ...

最新文章

  1. 每个程序员都需要学习 JavaScript 的7个理由
  2. 13-flutter 加载图片
  3. UA MATH565C 随机微分方程V Markov Family的特征函数
  4. MATLAB-常见命令使用
  5. 二叉树的最小深度Python解法
  6. 决策树原理实例(python代码实现)_决策树原理实例(python代码实现)
  7. Web 服务器远程控制硬件(Arduino)
  8. UNIX环境高级编程习题——第三章
  9. wmic冻结进程_WMIC的用法
  10. 从0开始编写minecraft光影包(0)GLSL,坐标系,光影包结构介绍
  11. 刑事案件的构成要素 zt
  12. 2020年chx的计算机保研之路系列(1)——北师大人工智能学院+北航计算机学院(均获得优营)
  13. 浅谈单神经元网络PID控制算法及MATLAB仿真
  14. Facebook Haystack 管理百亿照片
  15. 天津达内可靠么 老员工揭秘真实的达内教育
  16. 计算n阶逆矩阵的C语言实现
  17. 深入理解操作系统原理之设备管理
  18. HBuilder 代码格式化时清除空行
  19. 16代表啥_十六型人格的四个字母分别代表了什么含义?
  20. 推荐!CSDN博客放阿里妈妈广告代码的方法

热门文章

  1. 05_HUD_Qt_for_Python开发之路3
  2. 什么软件可以搜索计算机知识,生活必备电脑知识技巧大全
  3. 老鹰主机怎么样?多年的用户来说下
  4. mysql查询集合中的特定数据_快速查询List中指定的数据
  5. Spring和Spring Framework的理解
  6. 调试程序DEBUG命令说明
  7. JavaScript赋值
  8. php 比对两张图片,PHP实现图片相似度对比
  9. PTA  部落(并查集)
  10. Firefox建议用户禁用McAfee插件