IDEA+Git——项目分支管理

news2024/11/18 23:43:52

IDEA+Git——项目分支管理

  • 1. 前言
  • 2. 基础知识点
    • 2.1. 分支区分
    • 2.2. Git 代码提交规范
    • 2.3. 四个工作区域
    • 2.4. 文件的四种状态
    • 2.5. 常用命令
    • 2.6 注重点
  • 3. IDEA分支管理

1. 前言

在Git中,分支是项目的不同版本,当开始开发一个新项目时,主分支通常是master分支。随着项目的进展,你可能需要开发新的功能或修复bug,在这些情况下,你可以创建一个新的分支,以便在不影响主分支的情况下进行开发。

2. 基础知识点

2.1. 分支区分

  • master:用于版本的更新,当比较大的功能开发完成或者更新之后会有一次集体的发版,就会将所有的代码都合到master(有的公司也会用release分支发版,原理都是一样)
  • dev:一般是开发测试分支,在项目发版上线之前都会现在dev分支上统一进行测试,确保功能达标没有bug之后再推到master分支
  • feature分支:用来做分模块功能开发,建议命名为feature-xxx-time(也可能是其它命名方式,或者以_分割等等),模块完成之后,会合并到 dev 分支;
  • hotfix分支:是用来做线上的紧急bug修复的分支,建议命名为hotfix-xxx-time。当线上某个版本出现了问题,将检出对应版本的代码,创建hotfix分支,问题修复后,合并回devmaster,这里注意,合并到master的时候,一般要打上修复后的版本标签

示例:git branch feature-bulitProject-20230609

2.2. Git 代码提交规范

  • feat:代表本次提交代码中包含了新增功能
  • fixBUG和问题修复
  • refactor:代码重构,如方法改名、变量移动、包变更等,对应IDEARefactor(重构)操作
  • docsGit仓库中的文档相关更新
  • style:代码格式修改,如缩进和空格调整
  • test:测试代码的调整
  • chore:部署脚本、构建工具、依赖管理调整
  • revert:撤销之前提交的特殊说明

示例:git commit fix:修复xxx方法中数据转换异常问题

2.3. 四个工作区域

  • Workspace:工作区。就是你平时存放项目代码的地方
  • Index/Stage:暂存区。用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
  • Repository:仓库区(或版本库)。就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
  • Remote:远程仓库。托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换

2.4. 文件的四种状态

在这里插入图片描述

  • Untracked:未跟踪。此文件在文件夹中,但并没有加入到git库,不参与版本控制,通过git add状态变为Staged
  • Unmodify:文件已经入库,未修改,即版本库中的文件快照内容与文件夹中完全一致,这种类型的文件有两种去处,如果它被修改, 而变为Modified,如果使用git rm移出版本库,则成为Untracked文件
  • Modified:文件已修改。仅仅是修改,并没有进行其他的操作,这个文件也有两个去处,通过git add可进入暂存staged状态,使用git checkout则丢弃修改过,返回到unmodif状态,这个git heckout即从库中取出文件,覆盖当前修改
  • Staged:暂存状态。执行git commit则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为Unmodify状态,执行git reset HEAD filename取消暂存,文件状态为Modified

2.5. 常用命令

git init:在本地目录中初始化一个新的Git仓库
git clone:克隆(复制)远程仓库到本地
git add:将文件添加到暂存区
git commit:提交暂存区中的文件到仓库,并附带提交信息
git status:查看仓库当前状态
git diff:查看工作区与暂存区之间、暂存区与最新提交之间的文件差异
git show:显示提交记录的详细信息
git log:查看提交历史记录
git branch:列出、创建和删除分支
git checkout:切换到指定分支或恢复工作区文件
git merge:将指定分支合并到当前分支
git rebase:将当前分支的修改移到目标分支的末端
git pull:从远程仓库拉取最新修改到本地分支
git push:将本地的修改推送到远程仓库
git tag:为提交打上标签
git reset:重置当前分支到指定状态
git rm:删除文件
git revert:创建一个新的提交来撤销指定的提交
git remote:管理远程仓库
git config:配置Git选项

2.6 注重点

  • 查看本地用户信息
    • git config user.name // 获取当前登录的用户
    • git config user.email // 获取当前登录用户的邮箱
  • 修改git本地用户信息
    • git config --global user.name 'userName' // 修改登陆账号
    • git config --global user.email 'email' // 修改登陆邮箱
    • git config --global user.password 'password' // 修改登陆密码

3. IDEA分支管理

  1. 创建分支
    在这里插入图片描述
    在这里插入图片描述

  2. 切换分支
    在这里插入图片描述

  3. 合并分支
    在这里插入图片描述

  4. 回滚分支
    在这里插入图片描述

  5. 解决冲突
    在这里插入图片描述

    解决上图中的冲突方案如下:一般选择Merge
    1. Accept Yours:代表以自己的为准
    2. Accept Theris:代表以更新下来的文件为准
    3. Merge:代表手动合并

    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Java SSM框架实现班级同学录管理系统项目【项目源码】计算机毕业设计

基于java的SSM框架实现班级同学录管理系统演示 SSM框架 当今流行的“SSM组合框架”是Spring SpringMVC MyBatis的缩写,受到很多的追捧,“组合SSM框架”是强强联手、各司其职、协调互补的团队精神。web项目的框架,通常更简单的数据源。Spri…

LabVIEW开发自动光学焊点检测系统

LabVIEW开发自动光学焊点检测系统 LabVIEW于开发了一个自动光学焊点检测系统,旨在提高电子元件焊接的质量和效率。通过利用LabVIEW的高级视觉开发模块,该系统能够准确地识别和分类电路板上的不同焊点类型,如桥接、虚焊、漏焊和多锡。这一进步…

Hibernate实战之操作MySQL数据库(2024-1-8)

Hibernate实战之操作MySQL数据库 2024.1.8 前提环境(JavaMySQLNavicatVS Code)1、Hibernate简介1.1 了解HQL 2、MySQL数据库建表2.1 编写SQL脚本2.2 MySQL执行脚本 3、Java操作MySQL实例(Hibernate)3.1 准备依赖的第三方jar包3.2 …

【S32K 进阶之旅】 NXP S32K3 以太网 RMII 接口调试(3)

前言 两章我们使用大联大世平集团开发的 NXP S32K344 开发板和 NXP 官网开放的 TCP/IP stacks 例程完成了 NXP S32K3 以太网功能的开发环境搭建和软件调试,下面验证 RMII 百兆通信基本功能。没看过第一节的小伙伴请移步《【S32K 进阶之旅】 NXP S32K3 以太网 RMII 接…

《矩阵分析》笔记

来源:【《矩阵分析》期末速成 主讲人:苑长(5小时冲上90)】https://www.bilibili.com/video/BV1A24y1p76q?vd_sourcec4e1c57e5b6ca4824f87e74170ffa64d 这学期考矩阵论,使用教材是《矩阵论简明教程》,因为没…

爬虫-5-数据提取-正则,xpath

#免责声明:本文仅供学习,请遵纪守法。 ԅ(ㅂԅ)

静态网页设计——个人图书馆(HTML+CSS+JavaScript)(dw、sublime Text、webstorm、HBuilder X)

前言 声明:该文章只是做技术分享,若侵权请联系我删除。!! 感谢大佬的视频: https://www.bilibili.com/video/BV1VN4y1q7cz/?vd_source5f425e0074a7f92921f53ab87712357b 源码:https://space.bilibili.co…

【嵌入式】git工具基础命令学习笔记 | 嵌入式Linux

文章目录 前言一、git基础指令二、git分支管理2.1、一些基础命令2.2、时间回溯2.3、新建分支,删除分支,重命名分支 前言 参考:飞凌嵌入式ElfBoard ELF-1 软件学习手册 chatGPT 一、git基础指令 首先我们新建一个名叫git的文件夹&#xff0…

【Java集合篇】HashMap的put方法是如何实现的?

HashMap的put方法是如何实现的 ✔️典型解析✔️ 拓展知识仓✔️HashMap put方法的优缺点有哪些✔️如何避免HashMap put方法的哈希冲突✔️如何避免HashMap put方法的哈希重 ✔️源码解读✔️putVal 方法主要实现如下,为了更好的帮助大家阅读,提升效率&…

MySql01:初识

1.mysql数据库2.配置环境变量3. 列的类型和属性,索引,注释3.1 类型3.2 属性3.3 主键(主键索引)3.4 注释 4.结构化查询语句分类:5.列类型--表列类型设置 1.mysql数据库 数据库: ​ 数据仓库,存储数据,以前我…

物理实验2023年下B卷部分题目总结

物理实验考试每个实验的题目由5个题变成8个题了QAQ 交直流电桥 1.惠斯通电桥不适于阻值较低(1欧以下)电阻的原因 2.立式电桥与卧式电桥的比较(灵敏度、准确度、测量范围) 3.交流电桥平衡法测电容的电路接线 4.铜热电阻、热敏…

Qt 6之五:创建菜单

Qt 6之五:创建菜单 Qt是一种跨平台的C应用程序开发框架,它提供了一套丰富的工具和库,可以帮助开发者快速构建跨平台的应用程序,用于开发图形用户界面(GUI)和非GUI应用程序。 Qt 6之一:简介、安…

初识大数据,一文掌握大数据必备知识文集(15)

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

Kafka与RabbitMQ的区别

消息队列介绍 消息队列(Message Queue)是一种在分布式系统中进行异步通信的机制。它允许一个或多个生产者在发送消息时暂时将消息存储在队列中,然后由一个或多个消费者按顺序读取并处理这些消息。 消息队列具有以下特点: 异步通…

STM32F103C8T6(HAL库函数 - 内部Flash操作)

简介 STM32F103C8T6 内部Flash 为 64KB,本次将对他多余空间进行读写。 介绍 数据手册下载 STM32F103x8/STM32F103xB 数据手册 包含Flash Memory Page分布 STM32F设备命名 设备容量类型 中容量类型 内部空间介绍 64 KBytes大小Flash Memory 从 0x0800 0000 ~…

Mysql-排序查询方法

接上篇Mysql数据库的基础操作-CSDN博客 25. 基础-SQL-DCL-权限控制-_哔哩哔哩_bilibili 1、排序语法 2、查询结果示例 这个查询结果,因为特意选的age18 的数据来统计,所以当每一条数据的age一样时,使用worknno进行排序。可以看到work的升序和…

智能监控:业务监控新选择,效率提升新动力

前言 随着科技的飞速发展,企业对于业务的稳定性和连续性要求越来越高。传统的监控方式虽然在一定程度上能够保证业务的正常运行,但在面对复杂多变的业务场景和日益增长的数据量时,往往显得力不从心。为了解决这一问题,观测云在提…

NUXT3学习笔记

1.邂逅SPA、SSR 1.1 单页面应用程序 单页应用程序 (SPA) 全称是:Single-page application,SPA应用是在客户端呈现的(术语称:CSR(Client Side Render)) SPA的优点 只需加载一次 SPA应用程序只需…

迎接人工智能的下一个时代:ChatGPT的技术实现原理、行业实践以及商业变现途径

课程背景 2023年,以ChatGPT为代表的接近人类水平的对话机器人,AIGC不断刷爆网络,其强大的内容生成能力给人们带来了巨大的震撼。学术界和产业界也都形成共识:AIGC绝非昙花一现,其底层技术和产业生态已经形成了新的格局…

Linux-添加虚拟内存,不添加硬盘方式操作

在linux中,当物理内存mem不足时,就会使用虚拟内存(swap分区) 例如增加2G虚拟内存,操作如下: 1.查看内存大小 [rootlocalhost ~]# free -m 2.创建要作为swap分区的文件:增加1GB大小的交换分区,则命令写法如下,其中的cou…