【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.mzph.cn/news/887943.shtml

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

相关文章

shell编程(4)脚本与用户交互以及if条件判断

声明: 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&#…

架构-微服务-服务调用Dubbo

文章目录 前言一、Dubbo介绍1. 什么是Dubbo 二、实现1. 提供统一业务api2. 提供服务提供者3. 提供服务消费者 前言 服务调用方案--Dubbo‌ 基于 Java 的高性能 RPC分布式服务框架,致力于提供高性能和透明化的 RPC远程服务调用方案,以及SOA服务治理方案。…

【Python网络爬虫笔记】2-HTTP协议中网络爬虫需要的请求头和响应头内容

1 HTTP 协议整理 HTTP(Hyper Text Transfer Protocol)即超文本传输协议,是用于从万维网(WWW)服务器传输超文本到本地浏览器的传送协议,直白点儿,就是浏览器和服务器之间的数据交互就是通过 HTT…

【前端开发】小程序无感登录验证

概述 封装的网络请求库,主要用于处理 API 请求并支持自动处理 token 过期 和 token 刷新,适用于需要身份验证的应用场景,特别是在移动端中。 主要功能 自动附加 Token 在每个请求中自动附加 Authorization 头部,使用存储的 acces…

关于Spring基础了解

Spring简介 Spring框架是一个开源的Java应用框架,旨在简化企业级应用程序的开发。它提供了一系列强大的工具和服务,帮助开发者构建高质量的Java应用程序。Spring框架的核心理念是使开发过程更加模块化、可测试和可维护。 主要特性 依赖注入&#xff08…

解析 SpringBoot 新冠密接者跟踪系统:灵活的权限管理机制

第2章 程序开发技术 2.1 Mysql数据库 为了更容易理解Mysql数据库,接下来就对其具备的主要特征进行描述。 (1)首选Mysql数据库也是为了节省开发资金,因为网络上对Mysql的源码都已进行了公开展示,开发者根据程序开发需要…

TYUT设计模式大题

对比简单工厂,工厂方法,抽象工厂模式 比较安全组合模式和透明组合模式 安全组合模式容器节点有管理子部件的方法,而叶子节点没有,防止在用户在叶子节点上调用不适当的方法,保证了的安全性,防止叶子节点暴露…

SpringBoot集成Kafka和avro和Schema注册表

Schema注册表 为了提升kafka的性能,减少网络传输和存储的数据大小,可以把数据的schema部分单独存储到外部的schema注册表中,整体架构如下图所示: 1)把所有数据需要用到的 schema 保存在注册表里,然后在记…

Nodemailer使用教程:在Node.js中发送电子邮件

目录 1. 简介 2. 安装 3. 基本配置 3.1 创建传输器 3.2 配置说明 4. 发送邮件 4.1 基本发送示例 4.2 发送验证码示例 5. 常见问题解决 5.1 "Greeting never received" 错误 5.2 安全建议 SMTP与邮件加密协议详解 1. SMTP简介 1.1 基本特点 2. 加密协…

Cause: java.sql.SQLException: No value specified for parameter 4

问题 执行更新sql时报错,异常栈如下 org.springframework.jdbc.BadSqlGrammarException: ### Error updating database. Cause: java.sql.SQLException: No value specified for parameter 4 ### The error may exist in com/my/mapper/MyMapper.java (best gue…

Wireshark 4.4.2:安全更新、错误修复、更新协议支持

流行的网络协议分析器Wireshark已更新至4.4.2版本。它可用于网络故障排除、分析、开发和教育。 已修复以下漏洞: wnpa-sec-2024-14 FiveCo RAP 解剖器无限循环。wnpa-sec-2024-15 ECMP 解析器崩溃。 更新的协议支持: ARTNET、ASN.1 PER、BACapp、B…

【一维DP】【三种解法】力扣983. 最低票价

在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为 days 的数组给出。每一项是一个从 1 到 365 的整数。 火车票有 三种不同的销售方式 : 一张 为期一天 的通行证售价为 costs[0] …

C语言中数据类型对应的打印格式

提示:文章 文章目录 前言一、背景二、C语言中数据类型对应的打印格式三、3.1 总结 前言 前期疑问: 本文目标: 一、背景 最近 二、C语言中数据类型对应的打印格式 int 对应 %d long 对应 %ld char 对应 %c float 对应 %f long long 对应 %…

《Django 5 By Example》阅读笔记:p339-p358

《Django 5 By Example》学习第12天,p339-p358总结,总计20页。 一、技术总结 1.项目(购物网站) django-admin startproject myshop 虽然这里只是示例,但我觉得这种命名为 myxxx 的习惯非常不好,因为在实际应用中,是…

Vue 项目开发常用知识点

一、基础语法与指令 1. 插值表达式 插值表达式是 Vue 中最基础的数据绑定方式,使用双大括号{{ }}将数据包裹起来,例如{{ message }},它会将 Vue 实例中的message属性的值渲染到页面相应位置。这种方式可以方便地在页面中展示动态数据&#x…

【Web开发基础学习——corsheaders 应用的理解】

Web开发基础学习系列文章目录 第一章 基础知识学习之corsheaders 应用的理解 文章目录 Web开发基础学习系列文章目录前言一、使用1.1 安装1.2 配置 二、功能总结 前言 corsheaders 是一个 Django 第三方应用,用于处理跨域资源共享 (CORS)。CORS 是一种机制&#x…

【简单好抄保姆级教学】javascript调用本地exe程序(谷歌,edge,百度,主流浏览器都可以使用....)

javascript调用本地exe程序 详细操作步骤结果 详细操作步骤 在本地创建一个txt文件依次输入 1.指明所使用注册表编程器版本 Windows Registry Editor Version 5.00这是脚本的第一行,指明了所使用的注册表编辑器版本。这是必需的,以确保脚本能够被正确解…

Milvus 2.5:全文检索上线,标量过滤提速,易用性再突破!

01. 概览 我们很高兴为大家带来 Milvus 2.5 最新版本的介绍。 在 Milvus 2.5 里,最重要的一个更新是我们带来了“全新”的全文检索能力,之所以说“全新”主要是基于以下两点: 第一,对于全文检索基于的 BM25 算法,我们采…

【数据分析】布朗运动(维纳过程)

文章目录 一、概述二、数学布朗运动2.1 数学定义2.2 布朗运动的数学模型2.21 标准布朗运动2.22 布朗运动的路径2.23 布朗运动的方程 三、布朗运动在金融学中的应用四、数学构造(以傅里叶级数为例)4.1 傅里叶级数的基本思想4.2 构造布朗运动 一、概述 布…

Spring Cloud(Kilburn 2022.0.2版本)系列教程(五) 服务网关(SpringCloud Gateway)

Spring Cloud(Kilburn 2022.0.2版本)系列教程(五) 服务网关(SpringCloud Gateway) 一、服务网关 1.1 什么是网关 在微服务架构中,服务网关是一个至关重要的组件。它作为系统的入口,负责接收客户端的请求,并将这些请求路由到相应的后端服务…