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

news2025/1/16 0:48:18

文章目录

    • 一、使用 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博客

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

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

相关文章

利用dockerCompose一键部署前后端分离项目

1.Docker Compose介绍 2.将自己准备好的docker-compose.yml文件上传到宿主机 3.查看docker-compose.yml文件 宿主机的文件内容可参考: 项目部署-通过docker手动部署前后端分离项目(全网超级详细 的教程)-CSDN博客 修改宿主机的nginx.conf …

Flink四大基石之Time (时间语义) 的使用详解

目录 一、引言 二、Time 的分类及 EventTime 的重要性 Time 分类详述 EventTime 重要性凸显 三、Watermark 机制详解 核心原理 Watermark能解决什么问题,如何解决的? Watermark图解原理 举例 总结 多并行度的水印触发 Watermark代码演示 需求 代码演示&#xff…

解决SpringBoot连接Websocket报:请求路径 404 No static resource websocket.

问题发现 最近在工作中用到了WebSocket进行前后端的消息通信,后端代码编写完后,测试一下是否连接成功,发现报No static resource websocket.,看这个错貌似将接口变成了静态资源来访问了,第一时间觉得是端点没有注册成…

(超详细图文)PLSQL Developer 配置连接远程 Oracle 服务

1、下载配置文件 (超详细图文详情)Navicat 配置连接 Oracle-CSDN博客 将下载的文件解压到单独文件夹,如:D:\App\App_Java\Oracle\instantclient-basic-windows.x64-19.25.0.0.0dbru 2、配置 打开 PLSQL Developer,登…

redis中的哨兵

redis中的哨兵 一、哨兵机制的概念二、redis哨兵的部署2.1 docker的安装2.2 编排redis主从节点2.3 配置哨兵节点 三、redis哨兵的选举机制3.1 redis-master宕机之后的情况3.2 重启redis-master后的情况 四、redis哨兵机制的原理4.1主观下线4.2客观下线4.3选举leader节点4.4选出…

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

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

EXCEL截取某一列从第一个字符开始到特定字符结束的字符串到新的一列

使用EXCEL中的公式进行特定截取 假设列A是一组产品的编码,我们需要的数据是“-”之前的字段。 我们需要在B1单元格输入公式“LEFT(A1,SEARCH("-",A1)-1)”然后选中B1至B4单元格,按“CTRLD”向下填充,就可以得出其它几行“-”之前的…

【CANOE】【Capl】【RS232】控制串口设备

系列文章目录 内置函数,来控制传统的串口设备,比如继电器等 文章目录 系列文章目录前言一、控制串口二、自定义相关的参数RS232Configure**函数语法****函数功能****参数说明****返回值****示例代码** 三、回调函数的使用RS232OnSend**函数语法****函数…

配置泛微e9后端开发环境

配置泛微e9的后端开发环境 1.安装jdk1.8(请自行安装并设置环境变量) 2.将服务器上的WEARVER文件夹拷贝到开发环境下(其中要包含ecology和Resin目录) 3.通过idea创建一个基础Java项目,将jdk设置为1.8 4.添加依赖,需要将3个文件夹的所有jar包添加到项目中…

python+django5.1+docker实现CICD自动化部署springboot 项目前后端分离vue-element

一、开发环境搭建和配置 # channels是一个用于在Django中实现WebSocket、HTTP/2和其他异步协议的库。 pip install channels#channels-redis是一个用于在Django Channels中使用Redis作为后台存储的库。它可以用于处理#WebSocket连接的持久化和消息传递。 pip install channels…

【React】全局状态管理(Context, Reducer)

以下为知行小课学习笔记。 概述 Context 跨组件共享状态 在 Next 项目,封装 useContext。 AppContext.tsx "use client";import React, {createContext, Dispatch, ReactNode, SetStateAction, useContext, useMemo, useState} from react;type State …

ENSP IPv6-over-IPv4 OSPFv3

目前主流网络还是IPv4网络,IPv6网络尚未规模化部署。由于网络演进还存在较长时间IPv4到IPv6过渡期或IPv4和IPv6网络共存期。为此,国际标准组织为应对较长时间过渡期,形成了相关的过渡技术标准。目前主要存在三种过渡技术:双协议栈…

open-instruct - 训练开放式指令跟随语言模型

文章目录 关于 open-instruct设置训练微调偏好调整RLVR 污染检查开发中仓库结构 致谢 关于 open-instruct github : https://github.com/allenai/open-instruct 这个仓库是我们对在公共数据集上对流行的预训练语言模型进行指令微调的开放努力。我们发布这个仓库,并…

git使用(三)

git使用(三) git各阶段回退操作命令git checkout --git reset HEADgit reset --hardgit refloggit push -fgit diff HEAD -- git推送代码冲突解决方案两个人对不同代码段做修改两个人对相同代码段做修改 git各阶段回退操作命令 git checkout – 当在工作…

深度学习基础1

目录 1. 深度学习的定义 2.神经网络 2.1. 感知神经网络 2.2 人工神经元 2.2.1 构建人工神经元 2.2.2 组成部分 2.2.3 数学表示 2.2.4 对比生物神经元 2.3 深入神经网络 2.3.1 基本结构 2.3.2 网络构建 2.3.3 全连接神经网络 3.神经网络的参数初始化 3.1 固定值初…

设计模式-适配器模式-注册器模式

设计模式-适配器模式-注册器模式 适配器模式 如果开发一个搜索中台,需要适配或接入不同的数据源,可能提供的方法参数和平台调用的方法参数不一致,可以使用适配器模式 适配器模式通过封装对象将复杂的转换过程隐藏于幕后。 被封装的对象甚至…

2025年人工智能,自动化与机械工程国际学术会议(AIAME2025)

早鸟通道开启: 2025年人工智能,自动化与机械工程国际学术会议(AIAME2025) 2025 International Conference on Artificial Intelligence, Automation, and Mechanical Engineering 【重要日期】 早鸟征稿截止日期:…

IntelliJ IDEA配置(mac版本)

用惯了eclipse开发java的小伙伴们,初次接触IntelliJ IDEA可能会和我一样,多少有些不适感,在使用过程中总想着eclipse得对应功能。 接下来,我就总结下我日常开发中遇到的常用配置(不包括快捷键,我认为每个人…

GateWay使用手册

好的&#xff0c;下面是优化后的版本。为了提高可读性和规范性&#xff0c;我对内容进行了结构化、简化了部分代码&#xff0c;同时增加了注释说明&#xff0c;便于理解。 1. 引入依赖 在 pom.xml 中添加以下依赖&#xff1a; <dependencies><!-- Spring Cloud Gate…

在内网工作时,如何使用 vscode remote ssh 去连接内网服务器?

来源&#xff1a;https://stackoverflow.com/questions/56671520/how-can-i-install-vscode-server-in-linux-offline 看这个回答&#xff1a; 一般来说&#xff0c;内网会提供 vscode 安装包&#xff0c;remote-ssh 的 vsix&#xff0c;先安装好。 随后&#xff0c;保证自己…