【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.git
 	refs/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博客

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

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

相关文章

本地学习axios源码-如何在本地打印axios里面的信息

1. 下载axios到本地 git clone https://github.com/axios/axios.git 2. 下载react项目, 用vite按照提示命令配置一下vite react ts项目 npm create vite my-vue-app --template react 3. 下载koa, 搭建一个axios请求地址的服务端 a.初始化package.json mkdir koa-server…

【深度学习基础】预备知识 | 微积分

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上,结合当代大数据和大算力的发展而发展出来的。深度学习最重…

微信小程序构建npm失败,没有找到可以构建的npm包

方法:打开终端输入 npm init -y npm install 或 yarn install我用 npm install 下载后并没有出现node_modules, 又用 yarn install 下载,成功了 下载好后,在project.config.json文件添加 "showShadowRootInWxmlPanel": true, …

Ubuntu 24.04使用docker安装Node-Red

Node-Red是开源是可视化的流计算软件,在Ubuntu 24.04版本下,很容易通过docker进行安装。 本人环境信息如下: Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 6.8.0-45-generic x86_64)ubuntupascalming-ubuntu:~$ docker -v Docker version 24.0…

11.26深度学习_神经网络-数据处理

一、深度学习概述 1. 什么是深度学习 ​ 人工智能、机器学习和深度学习之间的关系: ​ 机器学习是实现人工智能的一种途径,深度学习是机器学习的子集,区别如下: ​ 传统机器学习算法依赖人工设计特征、提取特征,而深…

Kotlin的object修饰符定义类似Java的静态类/静态方法

Kotlin的object修饰符定义类似Java的静态类/静态方法 //类似Java的static类 object StaticCls {//类似Java静态变量private var num 0//类似Java的静态方法fun updateVal(n: Int) {num n}fun getVal(): Int {return num} }class MyTest() {fun setVal() {StaticCls.updateVal…

接口隔离原则理解和实践

在软件开发中,设计原则是指导我们编写高质量代码的重要准则。接口隔离原则(Interface Segregation Principle, ISP)是面向对象设计原则中的一条重要原则。ISP原则指出,客户端不应该依赖它不需要的接口,类间的依赖关系应…

SQL进阶——C++与SQL进阶实践

在C开发中,SQL数据库的操作是开发者常见的任务之一。虽然前面我们已经介绍了如何在C中通过数据库连接执行基本的SQL查询,但在实际项目中,我们通常需要更加复杂和高效的数据库操作。存储过程与函数的调用、复杂SQL查询的编写、以及动态构造SQL…

JVM 性能调优 -- JVM常用调优工具【jps、jstack、jmap、jstats 命令】

前言: 前面我们分析怎么去预估系统资源,怎么去设置 JVM 参数以及怎么去看 GC 日志,本篇我们分享一些常用的 JVM 调优工具,我们在进行 JVM 调优的时候,通常需要借助一些工具来对系统的进行相关分析,从而确定…

Mongo操作手册

Mongo数据类型 在Mongodb中,可以使用数字代码和别名作为过滤条件查询文档。在聚合操作中,可以获取字段类型的别名。或者根据返回的字段类型实现不同的逻辑。 //使用字符串"array"和数字类型4查询字段类型是数组的数据 db.collection.find({&l…

HBU深度学习作业9

1. 实现SRN (1)使用Numpy实现SRN import numpy as npinputs np.array([[1., 1.],[1., 1.],[2., 2.]]) # 初始化输入序列 print(inputs is , inputs)state_t np.zeros(2, ) # 初始化存储器 print(state_t is , state_t)w1, w2, w3, w4, w5, w6, w7, …

智能堆叠,集群和IRF

堆叠和IRF其实可以近似看成同一种技术,只是华三叫IRF,华为叫智能堆叠 智能堆叠(iStack):支持堆叠特性的交换机通过堆叠线缆连接在一起,从逻辑上变成一台交换设备,作为一个整体参与数据转发&…

三维渲染中顺序无关的半透明混合(OIT)(二——Stencil Route)

1、A-Buffer算法。 在谈到Stencil Route之前,需要先讨论A-Buffer算法。A-Buffer是一种图形学(渲染方向)上的用于可见面分析(Visble Surface Detection)的技术,是Z-Buffer的衍生方法。 Z-Buffer是用于剔除 不透明 物体的算法。假…

transformers bert-base-uncased情感分析

一、使用huggingface中的预训练模型,先要安装transformers、torch和SentencePiece pip install transformers pip install torch pip install SentencePiece 手动下载:https://huggingface.co/google-bert/bert-base-uncased/tree/main 添加以目录&…

Android开发仿qq详情下拉头像变大

Android开发仿qq详情下拉头像变大 个人详情界面,很多都有下拉头像变大的效果,其实我觉得这效果还不如点击头像看大图呢 一、思路: 自定义ScrollView 二、效果图: 看视频更直观点: Android开发教程案例分享-仿qq详情…

洛谷 P1157 组合的输出 C语言

题目:https://www.luogu.com.cn/problem/P1157#submit 题目描述 排列与组合是常用的数学方法,其中组合就是从 n 个元素中抽出 rr 个元素(不分顺序且 r≤nr≤n),我们可以简单地将 n 个元素理解为自然数 1,2,…,n从中任…

数据结构3.链表

目录 1.链表的概念及结构 2.链表的分类 1.单向或者双向 2.带头或者不带头 3.循环或者非循环 3.链表的实现 1.无头单向非循环链表 2.双向带头循环链表 4.顺序表和链表的区别 1.链表的概念及结构 概念:链表是一种物理存储结构上非连续、非顺序的存储结构&…

A054-基于Spring Boot的青年公寓服务平台

🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹 赠送计算机毕业设计600…

paimon的四种changelog模式(2)-none模式

# 请先了解input模式 环境创建 CREATE CATALOG fs_catalog WITH (typepaimon,warehousefile:/data/soft/paimon/catalog );USE CATALOG fs_catalog;drop table if exists t_changelog_none ;CREATE TABLE t_changelog_none (age BIGINT,money BIGINT,hh STRING,PRIMARY KEY (h…

【CSS in Depth 2 精译_064】10.3 CSS 中的容器查询相对单位 + 10.4 CSS 容器样式查询 + 10.5 本章小结

当前内容所在位置(可进入专栏查看其他译好的章节内容) 【第十章 CSS 容器查询】 ✔️ 10.1 容器查询的一个简单示例 10.1.1 容器尺寸查询的用法 10.2 深入理解容器 10.2.1 容器的类型10.2.2 容器的名称10.2.3 容器与模块化 CSS 10.3 与容器相关的单位 ✔…