当前位置: 首页 > news >正文

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

这篇文章我们来讲一下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上的使用及其实际开发介绍

这篇文章我们来讲一下git在idea上的使用,以及在实际开发过程中各个分支的使用及其具体的流程 目录 1.git在idea上的使用 1.1 idea上的git提交 1.2 idea上的分支切换 2.git在实际运用时的分支及其流程 2.1分支介绍 2.2具体流程 3.小结 1.git在idea上的使用 …...

记一次Nodejs减低npm版本的踩坑日记

使用了npm install -g npm6.4.1指令之后,把npm版本减低了,让后悲催的就来了。 由于npm 6.4.1 已经过时,导致运行npm时出现 npm does not support Node.js v18.14.2 版本不兼容问题 升级npm版本,npm install -g npmlatest 没用还是…...

【iOS】—— 初识RAC响应式编程

RAC(ReactiveCocoa) 文章目录RAC(ReactiveCocoa)响应式编程和函数式编程的区别函数式编程响应式编程响应式编程的优点RAC操作1.利用button点击实现点击事件和传值2.RACSignal用法RACSignal总结:3.对于label的TapGestur…...

Java——面向对象

目录 前言 一、什么是面向对象? 面向过程 & 面向对象 面向对象 二、回顾方法的定义和调用 方法的定义 方法的调用 三、类与对象的创建 类和对象的关系 创建与初始化对象 四、构造器详解 五、创建对象内存分析 六、封装详解 七、什么是继承&#x…...

电影《毒舌律师》观后感

上周看了《毒蛇律师》这部电影,讲述一位’大律师’在法庭为己方辩护,最终赢得辩护的故事。 (1)人之常情 说起法律相关,不禁会让人联想到讲法律相关知识的罗翔老师,平时也会看他相关视频,无论是亲…...

【活学活用掌握trap命令】

trap 命令用于指定在接收到信号后将要采取的动作,常见的用途是在脚本程序被中断时完成清理工作。当 shell 接收到 sigspec 指定的信号时, arg 参数(通常是执行命令)会被读取,并被执行。 1. 命令介绍 开始掌握基本的使用方式和方法 [1] 语法…...

计算机组成原理4小时速成6:输入输出系统,io设备与cpu的链接方式,控制方式,io设备,io接口,并行串行总线

计算机组成原理4小时速成6:输入输出系统,io设备与cpu的链接方式,控制方式,io设备,io接口,并行串行总线 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人&#xff0c…...

MyBatis源码分析(三)SqlSession的执行主流程

文章目录一、熟悉主要接口二、SqlSession的获取1、通过数据源获取SqlSession三、Mapper的获取与代理1、从SqlSession获取Mapper2、执行Mapper方法前准备逻辑3、SqlCommand的创建4、构造MethodSignature四、执行Mapper的核心方法1、执行Mapper的方法逻辑五、简单SELECT处理过程1…...

环境搭建01-Ubuntu16.04如何查看显卡信息及安装NVDIA显卡驱动

1. 查看显卡型号、驱动 ubuntu-drivers devices2. 安装NVIDIA显卡驱动 (1)验证是否禁用nouveau lsmod | grep nouveau若有输出,没有禁用,进行以下操作禁用。 sudo gedit /etc/modprobe.d/blacklist.conf在文件末尾中添加两条&…...

内网渗透测试理论学习之第四篇内网渗透域的横向移动

文章目录一、IPC二、HashDump三、PTH四、PTT五、PsExec六、WMI七、DCOM八、SPN九、Exchange在内网中,从一台主机移动到另外一台主机,可以采取的方式通常有文件共享、计划任务、远程连接工具、客户端等。 一、IPC IPC(Internet Process Conn…...

20 | k8s v1.20集群搭建master和node

1 单节点master 1.1 服务器整体规划 1.2 单Master架构图 1.3 初始化配置 1.3.1 关闭防火墙 systemctl stop firewalld systemctl disable firewalld1.3.2 关闭selinux sed -i s/enforcing/disabled/ /etc/selinux/config # 永久 setenforce 0 # 临时 1.3.3 关闭swap …...

《商用密码应用与安全性评估》第一章密码基础知识1.1应用概念

密码的概念与作用 概念 密码:采用特定变换的方法对信息进行加密保护、安全认证的技术、产品和服务。 密码技术:密码编码、实现、协议、安全防护、分析破译、以及密钥产生、分发、传递、使 用、销毁等技术。 密码技术核心:密码算法…...

【博学谷学习记录】超强总结,用心分享丨人工智能 深度学习 神经网络基础知识点总结

目录神经网络激活函数引入激活函数原因:sigmoid激活函数tanh 激活函数ReLU 激活函数(最常用)SoftMax如何选择反向传播参数初始化方法优化方法正则化批量归一层网络模型调优的思路神经网络 简单的神经网络包括三层:输入层&#xf…...

Python+tkinter添加滚动条

大家好,我是IKUN的真爱粉,有时候我们需要在tkinter上加滚动条,那么怎么制作呢,我们先看下面的视频展示效果,是不是你想要的 展示 感觉制作的略微粗糙,各位可以后期自己慢慢调整 创建滚动条重要的步骤是&a…...

大V龚文祥造谣董明珠恋情被禁言

我是卢松松,点点上面的头像,欢迎关注我哦! 因造谣董明珠与王自如恋情,知名大V龚文祥老师被今日头条禁言。龚文祥说,69岁的董明珠,找了一个小自己34岁的男友,引的网友议论纷纷。 2月26日&#…...

深入浅出Reactjs

深入浅出Reactjs 介绍 React是一个流行的JavaScript库,用于开发复杂的用户界面。它可以帮助开发人员构建灵活、高效和可维护的应用程序。本文将深入浅出地介绍React开发框架。 React的核心概念 React框架的核心概念是组件。组件是一个独立的、可复用的代码块&am…...

《C++ Primer Plus》第18章:探讨 C++ 新标准(1)

本章首先复习前面介绍过的C11功能,然后介绍如下主题: 移动语义和右值引用。Lambda 表达式。包装器模板 function。可变参数模板。 本章重点介绍 C11 对 C 所做的改进。本书前面介绍过多项 C11 功能,本章首先复习这些功能,并详细…...

PCB板漏孔、漏槽怎么办?看工程师避坑“SOP”

本文为大家介绍PCB画板时常见的钻孔问题,避免后续踩同样的坑。钻孔分为三类,通孔、盲孔、埋孔。不管是哪种孔,孔缺失的问题带来的后果是直接导致整批产品不能使用。因此钻孔设计的正确性尤为重要。 案例讲解 问题1:Altium设计的文…...

mysql数据库同步方案:springboot+集成cannal

1授权 -- 使用命令登录:mysql -u root -p -- 创建用户 用户名:canal 密码:Canal123456 create user canal% identified by Canal123456; -- 授权 *.*表示所有库 grant SELECT, REPLICATION SLAVE, REPLICATION CLIENT on *.* to canal% ident…...

oracle 19c 创建物化视图并测试logminer进行日志挖掘

1、创建物化视图 alter session set containerpdb; grant create materialized view to scott; create materialized view 物化视图名 -- 1. 创建物化视图 build [immediate | deferred] -- 2. 创建方式,默认 immediate refre…...

2.1 黑群晖驱动:10代u核显硬解驱动(解决掉IP、重启无法连接问题)

本文提供了两种10代核显驱动方式:1)第一种(本文:二、仅修改i915.ko驱动10代u核显方法)为网上流传最多但是对主板兼容性要求很高,网上评论常会出现操作后无法识别IP(掉IP)的问题。因此,采用第一种…...

二、CSS

一、CSSHTML的结合方式 1、第一种&#xff1a;在标签的style属性上设置"key:value value;"&#xff0c;修改标签样式 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title>…...

变分推断 (Variational Inference) 解析

前言 如果你对这篇文章可感兴趣&#xff0c;可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」&#xff0c;查看完整博客分类与对应链接。 变分推断 在贝叶斯方法中&#xff0c;针对含有隐变量的学习和推理&#xff0c;通常有两类方式&#xff0c;其一是马尔可…...

27. 移除元素

题目链接&#xff1a;https://leetcode.cn/problems/remove-element/给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输…...

hive临时目录清理

hive运行失败会导致临时目录无法自动清理&#xff0c;因此需要自己写脚本去进行清理 实际发现hive临时目录有两个&#xff1a; /tmp/hive/{user}/* /warehouse/tablespace//hive/**/.hive-staging_hive 分别由配置hive.exec.scratchdir和hive.exec.stagingdir决定: 要注意的…...

如何创建发布新品上市新闻稿

推出新产品对任何企业来说都是一个激动人心的时刻&#xff0c;但向潜在客户宣传并围绕您的新产品引起轰动也可能是一个挑战。最有效的方法之一就是通过发布新品上市新闻稿。精心制作的新闻稿可以帮助我们通过媒体报道、吸引并在目标受众中引起关注。下面&#xff0c;我们将讲述…...

关于.bashrc和setup.bash的理解

在创建了ROS的workspace后&#xff0c;需要将workspace中的setup.bash文件写入~/.bashrc 文件中&#xff0c;让其启动&#xff1a; source /opt/ros/melodic/setup.bash这句话的目的就是在开新的terminal的时候&#xff0c;运行这个setup.bash&#xff0c;而这个setup.bash的作…...

03 Android基础--fragment

03 Android基础--fragment什么是fragment&#xff1f;fragment生命周期&#xff1f;动态的fragment与静态的fragmentfragment常用的两个类与APIFragment与Activity通信什么是fragment&#xff1f; 碎片&#xff0c;一个activity中可以使用多个fragment&#xff0c;可以把activi…...

Redis使用,AOF、RDB

前言 如果有人问你&#xff1a;"你会把 Redis 用在什么业务场景下&#xff1f;" 我想你大概率会说&#xff1a;"我会把它当作缓存使用&#xff0c;因为它把后端数据库中的数据存储在内存中&#xff0c;然后直接从内存中读取数据&#xff0c;响应速度会非常快。…...

SOLIDWORKS Premium 2023 SP1.0 三维设计绘图软件

SOLIDWORKS 中文完美正式版提供广泛工具来处理最复杂的问题,并提供深层技术完成关键细节工作。新功能可助您改善产品开发流程,以更快地将创新产品投入生产。Solidworks 是达索公司最新推出的三维CAD系统,它可让设计师大大缩短产品的设计时间,让产品得以快速、高效地投向市场…...

编程做网站容易还是做软件/龙斗seo博客

2019独角兽企业重金招聘Python工程师标准>>> redis就是叫redis memcached的客户端dalli sinatramongoidmysqlsidekiqrails_admindeviseCMS(LocomotiveCms) 转载于:https://my.oschina.net/u/934148/blog/495720...

网站建设后台/seo的优点和缺点

1.SQLAIchemy介绍SQLAlchemy是python编程下的一款ORM框架,该框架是建立在数据库API文档上,使用关系对象映射进行数据库操作,简言之便:将对象转换成sql,然后使用API并获取执行结果2.SQLAIchemy安装pip install SQLAlchemy3.常用SQLAIchemy函数(python) #创建数据链接 MySQL-Pyth…...

怎么做php登陆网站/软文广告投放平台

目录 一 . 定时器 1) 实现一个定时器 二 . 线程池 三 . 线程池的实现 一 . 定时器 定时器就像一个闹钟 , 进行定时 , 在一定时间后,被唤醒并执行某个之前设定好的任务. Java标准库中提供的定时器 , 在 java.util 包下的 Timer 类 import java.util.Timer; import java.util.…...

阿里云域名出售/西昌seo快速排名

fork&#xff08;&#xff09;与vfock&#xff08;&#xff09;都是创建一个进程&#xff0c;那他们有什么区别呢&#xff1f;总结有以下三点区别&#xff1a; 1. fork &#xff08;&#xff09;&#xff1a;子进程拷贝父进程的数据段&#xff0c;代码段 vfork &#xf…...

利用已有网站 制作/安卓优化大师hd

话说C语言是很多语言学习的基础&#xff0c;理解并掌握好了C语言的一些语法规则&#xff0c;对于以后学习或者说自学其他语言&#xff0c;可以节省不少的时间。下面我们就来了解C语言程序当中的结构体知识点。结构体的定义形式如下&#xff1a;struct 结构体名{结构体成员}&…...

当当网网站建设方案/站长工具seo推广

&#xff08;一&#xff09;Spring IoC 重要概念 1、控制反转&#xff08;Inversion of control&#xff09;&#xff1a; 控制反转是一种通过描述&#xff08;在java中通过xml或者注解&#xff09;并通过第三方去产生或获取特定对象的方式。 控制反转IoC(Inversion of Control…...