Git中Idea操作git及Git Flow

目录

一、Idea中使用Git

1.idea配置Git和Gitee

2.实践操作

1.将本地项目推送到远程

2.从远程库克隆项目到本地

二、Git Flow

1.什么是Git Flow

2.工作流程

3.实践操作


一、Idea中使用Git

1.idea配置Git和Gitee

第一步:设置git.exe的安装路径

在设置中的版本控制找到Git,设置Path to Git executable的值,点击测试按钮,显示git的版本信息。

第二步:安装Gitee插件

在插件中下载Gitee插件,安装完成后重启idea使其生效。  

第三步:配置Gitee账号

 在设置中的版本控制找到Gitee、点击+选择第一个跳到Gitee网站授权登录

2.实践操作

1.将本地项目推送到远程

点击菜单 VCS -> Share Project On Gitee 输入远程仓库名、勾选是否是私库,最后点击Share按钮将本地项目推送到远程库

最后,可以再Gitee中的仓库里看到刚刚推送的仓库及仓库中项目。

之后,即可在idea中的右键项目选择Git菜单,进行Git三部曲操作(add/commit/push)。

  • 新增项目文件

此时文件为新增状态,以红色状态显示。

  • 保存暂存区

点击保存按钮,新增文件将被保存到暂存区,此时文件为绿色状态。

  • 提交到本地仓库

右键项目,选择Git -> 提交、在弹窗中输入提交信息点击提交,此时项目文件从暂存区真正进入版本库(本地)中,项目文件变成白色(这里要注意如果idea是白色风格,那么文件将会是黑色

  • 修改文件

修改已提交的文件后,此时文件将变成蓝色,蓝色代表已修改状态。

  • 推送和提取

右键项目点击Git -> 推送 将本地项目推送到远程库

右键项目点击Git -> 提取 将远程库代码更新到本地。

2.从远程库克隆项目到本地

打开idea,选择从VCS获取,弹出窗口下选择需要克隆的项目

 

二、Git Flow

1.什么是Git Flow

Git Flow是git的一种工作流程规范,由Vincent Driessen最先提出来,目的是为了解决分支和commit杂乱无章的问题。在实际开发过程中,若多名程序员开发同一个项目时很容易造成代码混乱甚至代码丢失的情况,而合理的运用gitflow规范可以很好地解决这个问题。如果你的公司很重视代码review,那么gitflow更是你的不二之选。

2.工作流程

Git Flow的分支主要分为两大类:主分支和辅助分支。其中主分支包含主要分支和开发分支,而辅助分支包含功能分支、预发分支、热修复分支以及其他自定义分支。

  • 主要分支(Master)

主要分支上存放的是最稳定的正式版本,并且该分支的代码应该是随时可在生产环境中使用的代码。当一个版本开发完毕后,产生了一份新的稳定的可供发布的代码时,主要分支上的代码要被更新。同时,每一次更新,都需要在主要分支上打上对应的版本号。

任何人不允许在主要分支上进行代码的直接提交,只接受其他分支的合入。原则上主要分支上的代码必须是合并自经过多轮测试及已经发布一段时间且线上稳定的预发分支。

  • 开发分支(Develop)

开发分支是主开发分支,其上更新的代码始终反映着下一个发布版本需要交付的新功能。当开发分支到达一个稳定的点并准备好发布时,应该从该点拉取一个预发分支并附上发布版本号。

开发分支接受其他辅助分支的合入,最常见的就是功能分支,开发一个新功能时拉取新的功能分支,开发完成后再并入开发分支。需要注意的是,合入开发的分支必须保证功能完整,不影响开发分支的正常运行。

  • 功能分支(Feature)

功能分支一般命名为 Feature/xxx,用于开发即将发布版本或未来版本的新功能或者探索新功能。该分支通常存在于开发人员的本地代码库而不要求提交到远程代码库上,除非几个人合作在同一个功能分支开发。

功能分支只能拉取自开发分支,开发完成后要么合并回开发分支,要么因为新功能的尝试不如人意而直接丢弃。

  • 预发分支(Release)

预发分支一般命名为 Release/1.2(后面是版本号),该分支专为测试—发布新的版本而开辟,允许做小量级的Bug修复和准备发布版本的元数据信息(版本号、编译时间等)。通过创建预发分支,使得开发分支得以空闲出来接受下一个版本的新的功能分支的合入。

预发分支需要提交到服务器上,交由测试工程师进行测试,并由开发工程师修复Bug。同时根据该分支的特性我们可以部署自动化测试以及生产环境代码的自动化更新和部署。

预发分支只能拉取自开发分支,合并回开发分支和主要分支。

  • 热修复分支(Hotfix)

热修复分支一般命名为Hotfix/1.2.1(后面是版本号),当生产环境的代码(主要分支上代码)遇到严重到必须立即修复的缺陷时,就需要从主要分支上指定的tag版本(比如1.2)拉取热修复分支进行代码的紧急修复,并附上版本号(比如1.2.1)。这样做的好处是不会打断正在进行的开发分支的开发工作,能够让团队中负责功能开发的人与负责修复的人并行、独立的开展工作。

热修复分支只能主要分支上拉取,测试通过后合并回主要分支和开发分支。


3.实践操作

第一步:在Master分支(主分支)上由项目经理开启新项目,搭建框架。(这时可以定义一个初始版本号,例如:v1.0.0)

请手动模拟项目经理操作,在git项目目录下创建aa.txt和bb.txt。

# 初始化git项目
git init
# 将手动添加的项目文件全部提交到暂存区
git add .
# 提交到本地仓库
git commit -m "搭建项目"

第二步:创建Dev分支(开发分支),并切换到Dev分支,编写程序。(这时程序员们开始干活了)

请手动模拟开发人员操作,在git项目目录下创建cc.txt和dd.txt。

# 创建并切换到Dev分支
git checkout -b dev
# 将手动添加的代码文件添加到dev的暂存区
git add .
# 提交到本地仓库
git commit -m "一阶段开发完成"

第三步:若开发阶段性工作完成,准备发布新版本,这时需要创建Release分支(预发布分支),并切换到Release分支,将Dev分支代码合并到该分支(这时测试工程师开始干活了),测试功能并修复Bug后,合并到Master(主分支)和Dev(开发分支)。

# 创建release预发布分支
git branch release
# 查看所有分支情况
git branch -v

这时,请不要急着切换到Release分支,当前任处于dev分支下,请再次手动在git项目中创建ff.txt文件

# 将ff.txt添加到暂存区,如果有很多文件需要添加,则请使用git add .
git add ff.txt
# 提交到本地仓库
git commit -m "ff.txt"

预示着虽然一阶段项目完成了,但是后续开发工作还要继续做,这时再次切换到Release分支上发现并没有ff.txt文件。

# 切换到release分支
git checkout release

这时,测试工程师在Release分支进行代码测试,并修复测试中遇到的Bug。(可以手动修改Release分支下的代码文件,例如:cc.txt和dd.txt等等)

修改完之后,必须进行add/commit操作。

# 添加到Release分支的暂存区
git add .
# 提交到本地仓库
git commit -m "修改release分支的bug"

第四步:切换到Master分支上,将当前的Release分支(预发布分支)上的代码合并到Master分支上,并打上标签v1.0.0。

# 切换Master分支
git checkout master
# 将Release分支上的代码更新到Master分支上
git merge release -m "1.0.0"

第五步:切换到Dev分支上,将当前的Release分支(预发布分支)上的代码合并到Dev分支上。

# 切换Master分支
git checkout dev
# 将Release分支上的代码更新到Dev分支上
git merge release -m "1.0.0"

第六步:删除当前的Release分支。

# 删除Release分支
git branch -d release

第七步:若v1.0.0发布版本在生产阶段遇到了Bug,这时则创建Hotfix分支(热修复分支),并切换到Hotfix分支,将Master主分支上v1.0.0版本的代码合并到Hotfix分支上进行修复并测试,测试完成后若无问题,则将当前Hotfix分支上的代码合并到Master(主分支)和Dev(开发分支)上。

# 创建+切换Hotfix分支
git checkout -b hotfix110
# 将Master分支上V1.0.0版本的代码合并到Hotfix分支
git merge master -m "修复master分支v1.0.0版本的问题"

模拟代码测试及修复操作。

# 将修复代码提交到hotfix分支的暂存区
git add .
# 提交到本地仓库
git commit -m "已在hotfix110分支上修复了代码"

第八步:切换到Master分支,将Hotfix分支上修复测试的代码更新合并到Master分支,并打上标签v1.0.1。

# 切换到Master分支
git checkout Master
# 将hotfix110分支上的代码合并到Master分支
git merge -m "合并hotfix110分支上修复的代码"
# 基于当前修复的代码,在Master分支上打上v1.0.1的标签
git tag -a v1.0.1 -m "v1.0.0问题已修复,标签v1.0.1"

第九步:切换到Dev分支,将Hotfix分支上修复测试的代码更新合并到Dev分支;

# 切换到Dev分支
git checkout dev
# 将hotfix110分支上的代码合并到Dev分支
git merge -m "合并hotfix110分支上修复的代码"

第十步:删除当前的Hotfix分支。

# 删除hotfix110分支
git branch -d hotfix110

如果要开发即将发布版本或未来版本的新功能或者探索新功能,则需要创建Feature分支(功能分支)。在该分支上完成新功能的探索与开发工作,如若没有问题则可以将Feature分支上的代码更新到Dev分支(开发分支)。最后删除该Feature分支。

# 创建+切换Feature分支
git checkout feature
# 将dev分支上的代码合并到feature分支
git merge dev -m "探索新功能"

功能探索成功,则合并到原有的Dev开发分支。

# 切换到dev分支
git checkout dev
# 将feature分支上探索开发成功的功能合并到dev分支
git merge feature -m "功能探索功能合并代码"

不管是功能探索成功,还是失败,最后都删除Feature分支

# 删除feature分支
git branch -d feature

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/386779.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[计算机提升] 备份系统:设置备份

6.5 备份系统:设置备份 1、进入到控制面板系统和安全\备份和还原,点击右侧的设置备份: 2、在弹出的设置备份对话框中,选择要保存的位置,点击下一步开始备份。 3、选择要备份的内容。根据需要选择即可。这种备份的…

计算机毕业设计springboot_vue房屋租赁系统_ku668

1.掌握Html,Css,JavaScript等基础编程语言。 2.掌握Vue框架,node环境,数据库等知识。 3.掌握开发系统的基本流程。 …

【原创 附源码】Flutter集成Apple支付详细流程(附源码)

最近有时间,特意整理了一下之前使用过的Flutter平台的海外支付,附源码及demo可供参考 这篇文章只记录Apple支付的详细流程,其他相关Flutter文章链接如下: 【原创 附源码】Flutter集成谷歌支付详细流程(附源码) 【原创 附源码】F…

爬虫——ajax和selenuim总结

为什么要写这个博客呢,这个代码前面其实都有,就是结束了。明天搞个qq登录,这个就结束了。 当然也会更新小说爬取,和百度翻译,百度小姐姐的爬取,的对比爬取。总结嘛!!!加…

VUE基础知识(JAVA后端入门篇)

VUE基础知识(JAVA后端入门篇) Vue是一套前端框架,免除原生JavaScriptr中的DOM操作,简化书写基于MVVM(Model–View-ViewModel)思想,实现数据的双向绑定,将编程的关注点放在数据上Vue.js - 渐进式 JavaScrip…

JSP知识点

1、JSP概述 1.1 什么是JSP html java代码 JSP动态标签 jsp JavaServer page 在静态页面上添加动态信息就可以了,如果是Servlet还需要一行一行的输出。 通常在前台开发人员给出静态页面后,后台开发人员只需在静态页面中添加动态信息即可&#xff…

算法学习——LeetCode力扣回溯篇3

算法学习——LeetCode力扣回溯篇3 491. 非递减子序列 491. 非递减子序列 - 力扣(LeetCode) 描述 给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。…

鸿蒙视频播放器,主要包括视频获取和视频播放功能:

鸿蒙视频播放器,主要包括视频获取和视频播放功能: 1 获取本地视频或者网络视频。 2 通过media.createAVPlayer创建播放器AVPlayer,然后进行视频播放。 3 通过VideoController进行AVPlayerState的状态管理,如开始,停止&…

【Linux】yum软件包管理器

目录 Linux 软件包管理器 yum 什么是软件包 Linux安装软件 查看软件包 关于rzsz Linux卸载软件 查看yum源 扩展yum源下载 Linux开发工具 vim编辑器 上述vim三种模式之间的切换总结: 命令模式下,一些命令: vim配置 Linux 软件包管理…

【VTKExamples::PolyData】第二十七期 KochanekSpline

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 前言 本文分享VTK样例KochanekSpline & KochanekSplineDemo,并解析接口vtkParametricSpline & vtkParametricFunctionSource,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,…

ros自定义msg记录

文章目录 自定义msg1. 定义msg文件2. 修改 package.xml3. 修改 CMakeLists.txt4. message_publisher.py5. message_subscriber.py6. 运行 catkin build 测试 自定义msg ros 版本:kinetic 自定义test包的文件结构如下 |-- test | |-- CMakeLists.txt | |-- msg…

x86汇编通用寄存器用途一览

文章目录 写在前面通用寄存器参考资料 写在前面 intel官方文档链接:Intel64和IA-32架构软件开发者手册 具体在Combined Volume Set of Intel 64 and IA-32 Architectures Software Developer’s Manuals这本手册 (五千页我的天。。。) 不想…

代码随想录算法训练营DAY17 | 二叉树 (4)

一、LeetCode 110 平衡二叉树 题目链接: 110.平衡二叉树https://leetcode.cn/problems/balanced-binary-tree/ 思路:设置深度计算函数,进行递归处理。 class Solution {public boolean isBalanced(TreeNode root) {if(root null){return true;}boolean…

maven创建webapp+Freemarker组件的实现

下载安装配置maven Maven官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘123云盘为您提供Maven最新版正式版官方版绿色版下载,Maven安卓版手机版apk免费下载安装到手机,支持电脑端一键快捷安装https://www.123pan.com/s/9QRqVv-TcUY.html链接为3.6.2-3.6.3的版本 下载解…

【FPGA】VHDL:八段码到8421BCD码转换电路

目录 EDA设计基础练习题 : 实验要求如下: 代码 八段码到8421BCD码转换电路 8421BCD码到八段码转换电路 八段码到8421BCD~运行结果展示 8421BCD转八段码~运行结果展示 特别注意 软件:Quartus II 13.0 (64-bit) 语言:VHDL E…

【网络攻防实验】【北京航空航天大学】【实验三、口令破解(Password Cracking)实验】

实验三、口令破解(Password Cracking)实验 一、 L0phtCrack破解实验 1、 注册L0phtCrack: 2、 设置口令: (1) 创建3个新账户: 帐户创建过程(以test-1为例): 帐户创建结果: (2) 使用L0phtCrack破解口令:(使用管理员账号运行程序) 口令破解结果: 正确破解口令…

【Spring原理高级进阶】有Redis为啥不用?深入剖析 Spring Cache:缓存的工作原理、缓存注解的使用方法与最佳实践

🎉🎉欢迎光临🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟特别推荐给大家我的最新专栏《Spring 狂野之旅:底层原理高级进阶》 &#x1f680…

AMD FPGA设计优化宝典笔记(4)复位桥

高亚军老师的这本书《AMD FPGA设计优化宝典》,他主要讲了两个东西: 第一个东西是代码的良好风格; 第二个是设计收敛等的本质。 这个书的结构是一个总论,加上另外的9个优化,包含的有:时钟网络、组合逻辑、触…

【数据结构】计算节点个数和二叉树高度(C语言版)

数据结构——计算节点个数、二叉树高度 一、计算各种节点 (1)计算总节点:(2)计算单分支节点:(3)计算双分支节点: 二、计算二叉树高度 代码实现: 一、计算各种…

react【五】redux/reduxToolkit/手写connext

文章目录 1、回顾纯函数2、redux2.1 redux的基本使用2.2 通过action修改store的数值2.3 订阅state的变化2.4 目录结构2.5 Redux的使用过程2.6 redux的三大原则2.7 Redux官方图 3、redux在React中的使用4、react-redux使用4.1 react-redux的基本使用4.2 异步请求 redux-thunk4.3…