【Git 工具】用 IntelliJ IDEA 玩转 Git 分支与版本管理

文章目录

    • 一、使用 IDEA 配置和操作 Git
      • 1.1 查看 Idea 中的 Git 配置
      • 1.2 克隆 Github 项目到本地
    • 二、版本管理
      • 2.1 提交并推送修改
      • 2.2 拉取远程仓库
      • 2.3 查看历史
      • 2.4 版本回退
    • 三、分支管理
      • 3.1 新建分支
      • 3.2 切换分支
      • 3.2 合并分支
      • 3.4 Cherry-Pick
    • 参考资料

一、使用 IDEA 配置和操作 Git

1.1 查看 Idea 中的 Git 配置

打开 IDEA 的设置菜单 file->setting->version control -> Git, 查看 Git 配置。

在这里插入图片描述

1.2 克隆 Github 项目到本地

  1. 启用版本控制: 第一次使用IDEA中的Git时,需要开启 版本控制系统 VCS->Enable version control…,,然后选择 Git

  2. 克隆远程项目:点击 Git -> Clone..., 在弹出的对话框中输入远程仓库地址,点击 Clone 按钮完成克隆操作。

在这里插入图片描述

二、版本管理

2.1 提交并推送修改

(1) 提交修改

点击工具栏上的 Git Commit 按钮,打开提交界面。在提交界面中:

  • 填写提交消息(Commit Message),描述本次修改内容。
  • 勾选需要提交的文件。
  • 点击 Commit 按钮,提交到本地版本库。

在这里插入图片描述

(2) 推送修改

点击工具栏中的 Push 按钮。确认推送的分支与远程仓库后,点击 Push 将修改上传到远程仓库。推送修改到远程服务器。

在这里插入图片描述

(3) 查看日志

推送成功后,日志中会显示详细的操作信息,例如:

18:59:29.031: [git-test] git -c core.quotepath=false -c log.showSignature=false push --progress --porcelain origin refs/heads/main:main
Writing objects: 100% (17/17), 2.42 KiB | 619.00 KiB/s, done.
Total 17 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/idealzouhu/git-test.gitrefs/heads/main:refs/heads/main	0af2b4b..b40b631
Done

2.2 拉取远程仓库

点击工具栏中的 Update Project... 按钮,在弹出的对话框中选择 Merge 进行合并。

在这里插入图片描述

2.3 查看历史

选择某个文件或目录,右键选择 Git -> Show History 查看修改历史。

在这里插入图片描述

在历史视图中,可以查看文件或目录的提交记录,包括提交者、时间和具体变更内容。例如,查看 .gitignore 文件的修改历史。

在这里插入图片描述

2.4 版本回退

在 IDEA 中可以通过 Reset Current Branch to here 将当前分支重置到指定的提交点。Git 提供三种重置模式:

  • Soft(软重置): 移动分支指针,不影响暂存区和工作区内容。
  • Mixed(默认模式): 移动分支指针并清空暂存区,但工作区内容保持不变。
  • Hard(硬重置): 移动分支指针,并清空暂存区和工作区。

右键分支的某个提交,选择 Reset Current Branch to here, 选择需要的重置模式(建议使用默认的 Mixed 模式)。

在这里插入图片描述

注意事项:

  • 重置后的工作区提醒: 如果 IDEA 提示 Workspace associated with branch 'main' has been restored,表示代码未同步到 reset 后的状态。这条消息的意思是,与 main 分支关联的工作区(即工作目录)已经被恢复到该分支的最新状态。

  • 为确保代码正确回退,请点击右下角的 Rollback,还原工作区代码。否则的话,分支上的提交可能被 reset ,但是代码却没有回退

在这里插入图片描述

三、分支管理

3.1 新建分支

分支列表 中右键单击某个分支,选择 New Branch from...

在这里插入图片描述

然后,在弹出的窗口中输入新分支的名称,点击确认。

在这里插入图片描述

3.2 切换分支

在分支列表中找到目标分支,右键选择 CheckOut。当前工作区将自动切换到该分支。

在这里插入图片描述

3.2 合并分支

(1) 创建 dev 分支并修改代码

main 分支新建并切换到 dev 分支,修改 dev 分支的代码并创建新的提交 feat: 更新 test 文件内容

在这里插入图片描述

(2) 合并 dev 分支到 main 分支

首先,切换到 main 分支,并故意修改与 dev 分支相同的部分,模拟代码冲突场景。然后,点击 dev 分支, 右键选择 Merge 'dev' into 'main', 将 dev 分支的修改内容合并到 main 分支。

在这里插入图片描述

如果出现代码冲突,界面会提示文件冲突。可以看到, test.txt 的合并出现问题,手动点击 smart merge 进入冲突解决界面。

在这里插入图片描述

在冲突解决窗口中,手动处理冲突内容,选择保留或修改的代码,确保合并无误。

在这里插入图片描述

(3) 推送 main 分支到远程分支

点击 push 按钮。

在这里插入图片描述

将 commit 推送到 远程分支。

在这里插入图片描述

3.4 Cherry-Pick

Cherry-Pick 用于从一个分支中**选择特定的提交(commit)**并将其应用到当前分支上,适用于提取特定更改而不需要合并整个分支。

具体操作步骤为:

  1. 切换当前分支为 main 分支。
  2. 右键选择 dev 分支中的提交 docs: 更新 test 文件内容,直接点击 cherry-pick
  3. IDEA 将自动将该提交应用到 main 分支。

在这里插入图片描述

可以看到,main 分支里面也相应有了 docs: 更新 test 文件内容 提交。

在这里插入图片描述

参考资料

Clone Mercurial Repository dialog | IntelliJ IDEA Documentation

Git在IDEA中的使用(详细图文全解)_idea操作git-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flink学习连载文章8--时间语义

Time的分类 (时间语义) EventTime:事件(数据)时间,是事件/数据真真正正发生时/产生时的时间 IngestionTime:摄入时间,是事件/数据到达流处理系统的时间 ProcessingTime:处理时间,是事件/数据被处理/计算时的系统的时间 EventTime的重要性 假设,你正在去往地下停…

自定义类型: 结构体、枚举 、联合

目录 结构体 结构体类型的声明 匿名结构体 结构的自引用 结构体变量的定义和初始化 结构体成员变量的访问 结构体内存对齐 结构体传参 位段 位段类型的声明 位段的内存分配 位段的跨平台问题 位段的应用 枚举 枚举类型的定义 枚举的优点 联合体(共用体) 联合…

【WPS】【EXCEL】将单元格中字符按照分隔符拆分按行填充到其他单元格

问题:实现如下图的效果 解答: 一、函数 IFERROR(TRIM(MID(SUBSTITUTE($A$2,",",REPT(" ",LEN($A$2))),(ROW(A1)-1)*LEN($A$2)1,LEN($A$2))),"") 二、在单元格C2中填写如下函数 三、全选要填充的单元格并且按CTRLD 函数…

BiGRU:双向门控循环单元在序列处理中的深度探索

一、引言 在当今的人工智能领域,序列数据的处理是一个极为重要的任务,涵盖了自然语言处理、语音识别、时间序列分析等多个关键领域。循环神经网络(RNN)及其衍生结构在处理序列数据方面发挥了重要作用。然而,传统的 RN…

卸载 Archiconda

一、卸载创建的虚拟环境 # 1.查看所创建的虚拟环境 conda env list# 2.一 一删除创建的虚拟环境,name 替换为自己创建的虚拟环境的名字 conda remove --name name --all二、卸载archidonda rm -rf ~/archiconda3三、删除conda的环境变量 外链图片转存失败,源站可…

【Java基础面试题001】Java中序列化和反序列化是什么?

在Java中,序列化和反序列化是用于将对象的状态保存和恢复的重要机制。 序列化 是将Java对象转换为字节流的过程,这样Java对象才可以网络传输、持久化存储还有缓存。Java提供了java.io.Serializable接口来支持序列化,只要类实现了这个接口&a…

前端学习week8——vue.js

Vue.js 基础 Vue 核心概念:了解 Vue 的响应式系统、组件、指令(如 v-if、v-for、v-model 等)。Vue 项目管理:学习 Vue CLI 或 Vite,掌握项目创建、管理和打包。推荐学习顺序:Vue 基础 → 组件化开发 → Vu…

Excel如何限制单元格内可选择的下拉框内容?

先选择想要的表格区域: 如果想要选中如下所示:C2格子及其下面所有的格子(则:点击一下C2格子,然后按一下键盘:SHIFT CTRL ↓) 然后在【sheet2】表,先填写好下拉框可选择的内容&am…

uniapp实现列表页面,实用美观

咨询列表页面 组件 <template><view><view class"news_item" click"navigator(item.id)" v-for"item in list" :key"item.id"><image :src"item.img_url"></image><view class"righ…

Linux学习笔记11 系统启动初始化,服务和进程管理(下)

前文 前文介绍了系统启动初始化程序&#xff0c;介绍了systemd的基础知识。这里主要看一下我们systemd的单元管理和常用的命令以及示例。 Linux学习笔记10 系统启动初始化&#xff0c;服务和进程管理&#xff08;上&#xff09;-CSDN博客 systemd单元管理 启动服务 这很常…

哈希表,哈希桶的实现

哈希概念 顺序结构以及平衡树中&#xff0c;元素关键码与其存储位置之间没有对应的关系&#xff0c;因此在查找一个元素 时&#xff0c;必须要经过关键码的多次比较。顺序查找时间复杂度为O(N)&#xff0c;平衡树中为树的高度&#xff0c;即 O(logN)&#xff0c;搜索的效率取决…

Maven install java heap space

Maven install java heap space 打包报错 Maven install java heap space 解决&#xff1a; vm option: -Xms1024m -Xmx1024m如果 vm配置了&#xff0c;还是一样报错&#xff0c;就重新选择JRE看看是否正确&#xff0c;idea会默认自己的环境&#xff0c;导致设置vm无效&…

aws(学习笔记第十五课) 如何从灾难中恢复(recover)

aws(学习笔记第十五课) 如何从灾难中恢复 学习内容&#xff1a; 使用CloudWatch对服务器进行监视与恢复区域(region)&#xff0c;可用区(available zone)和子网(subnet)使用自动扩展(AutoScalingGroup) 1. 使用CloudWatch对服务器进行监视与恢复 整体架构 这里模拟Jenkins Se…

【Maven】依赖管理

4. Maven的依赖管理 在 Java 开发中&#xff0c;项目的依赖管理是一项重要任务。通过合理管理项目的依赖关系&#xff0c;我们可以有效的管理第三方库&#xff0c;模块的引用及版本控制。而 Maven 作为一个强大的构建工具和依赖管理工具&#xff0c;为我们提供了便捷的方式来管…

go语言的成神之路-筑基篇-中间件

目录 单个Gin中间件 中间件简要概述 一、中间件的定义&#xff1a; 二、中间件的使用&#xff1a; 效果展示 多个Gin中间件 示例 Abort阻止后续处理函数 执行流程图 return直接返回 执行流程图 全局注册中间件 注意事项 单个Gin中间件 中间件简要概述 在 gin 框架中…

Xilinx PCIe高速接口入门实战(一)

引言&#xff1a;本文对Xilinx 7 Series Intergrated Block for PCI Express PCIe硬核IP进行简要介绍&#xff0c;主要包括7系列FPGA PCIe硬核资源支持、三IP硬核差异、PCIe硬核资源利用等相关内容。 1. 概述 1.1 7系列FPGA PCIe硬件资源支持 7系列FPGA对PCIe接口最大支持如…

【第三讲】Spring Boot 3.4.0 新特性详解:增强的配置属性支持

Spring Boot 3.4.0 版本在配置属性的支持上进行了显著增强&#xff0c;使得开发者能够更灵活地管理和使用应用程序的配置。新的特性包括对配置属性的改进、类型安全增强、以及对环境变量的更好支持。这些改进旨在提升开发效率和代码可读性&#xff0c;同时简化配置过程。本文将…

如何使用 Chrome 无痕浏览模式访问网站?

无痕浏览&#xff08;Incognito Mode&#xff09;是 Google Chrome 浏览器提供的一种隐私保护功能&#xff0c;它允许用户在一个独立的会话中浏览网页&#xff0c;而不会记录用户的浏览历史、下载历史、表单数据等。这对于希望保护个人隐私或进行临时性匿名浏览的用户来说非常有…

拥抱 OpenTelemetry:阿里云 Java Agent 演进实践

作者&#xff1a;陈承 背景 在 2018 年的 2 月&#xff0c;ARMS Java Agent 的第一个版本正式发布&#xff0c;为用户提供无侵入的的可观测数据采集服务。6 年后的今天&#xff0c;随着软件技术的迅猛发展、业务场景的逐渐丰富、用户规模的快速增长&#xff0c;我们逐渐发现过…

AI数据分析工具(二)

豆包-免费 优点 强大的数据处理能力&#xff1a; 豆包能够与Excel无缝集成&#xff0c;支持多种数据类型的导入&#xff0c;包括文本、数字、日期等&#xff0c;使得数据整理和分析变得更加便捷。豆包提供了丰富的数据处理功能&#xff0c;如数据去重、填充缺失值、转换格式等…