当前位置: 首页 > news >正文

《Git学习笔记:IDEA整合Git》

在IDEA中集成Git去使用

  • 通过Git命令可以完成Git相关操作,为了简化操作过程,我们可以在IDEA中配置Git,配置好后就可以在IDEA中通过图形化的方式来操作Git

在IDEA开发工具中可以集成Git:

集成后在IDEA中可以看到Git相关图标 

1. 在IDEA中配置Git

  • 在IDEA中使用Git,本质上还是使用的本地安装的Git软件,所以需要提前安装好Git并在IDEA中配置Git。

Git安装目录:

 

解释说明:  

  • gitk.exe:Git安装目录下的可执行文件,前面执行的git命令,其实就是执行的这个文件  

IDEA中的配置:

  • 首先关闭项目,找到Customize下的All settings:

 

1. 在IDEA当中去配置Git的安装目录 

点击OK即可~! 

2. 本地仓库操作 

在IDEA中使用Git获取仓库有两种方式:

  • 本地初始化仓库
  • 从远程仓库克隆 

2.1 本地初始化仓库

在IDEA中通过如下操作可以在本地初始化一个本地仓库,其实底层就是执行的 git init 命令

操作过程如下:

1)依次选择菜单【VCS】---【Import into Version Control】---【Create Git Repository】

 

2)在弹出的【Create Git Repository】对话框中选择当前项目根目录,点击【OK】按钮:  

操作完成后可以看到当前项目根目录下出现了.git隐藏目录:  

 

2.2 从远程仓库克隆

在IDEA中从远程仓库克隆本质就是执行的 git clone 命令,具体操作过程如下:  

1)在IDEA开始窗口中点击【Get from VCS】  

2)在弹出的【Get from VCS】窗口中输入远程仓库的URL地址对应的本地仓库存放目录,点击【Clone】按钮进行仓库克隆操作 

 

3. Git忽略文件:.gitignore

Git工作区中有一个特殊的文件 .gitignore通过此文件可以指定工作区中的哪些文件不需要Git管理

我们在码云上创建Git远程仓库时可以指定生成此文件,如下:  

创建完成后效果如下:

解释说明:
  1. 我们在使用Git管理项目代码时,并不是所有文件都需要Git管理,例如Java项目中编译的.class文件、开发工具自带的配置文件等,这些文件没有必要交给Git管理,所以也就不需要提交到Git版本库中。
  2. 注意:忽略文件的名称是固定的,不能修改
  3. 添加到忽略列表中的文件后续Git工具就会忽略它  

一个参考的.gitignore文件内容如下:

.git
logs
rebel.xml
target/
!.mvn/wrapper/maven-wrapper.jar
log.path_IS_UNDEFINED
.DS_Store
offline_user.md
*.class### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

4. 本地仓库操作

本地仓库操作:

  • 将文件的修改加入暂存区,本质上就是执行git add命令
  • 将暂存区当中的文件提交到版本库,本质上就是执行git commit命令
  • 查看提交日志,本质上就是执行git log命令

4.1 将文件加入暂存区

当在Git工作区新增文件或者对已有文件修改后,就需要将文件的修改加入暂存区,具体操作如下:  

  • 但是,在IDEA当中这一步可以不做,它会自动操作,也就是说,你可以绕过添加暂存区这一步,直接提交! 

 

4.2 将暂存区文件提交到版本库

  • 将暂存区文件提交到版本库,可以选择一个文件进行提交,也可以选择整个项目提交多个文件。
  • 在IDEA中对文件的提交进行了简化操作,也就是说如果文件修改后,无需再加入暂存区,可以直接提交。 
1)提交一个文件:

可以看到,如果选中一个文件提交,则菜单名称为【Commit File...】 

 

2)提交多个文件:

可以看到,如果提交多个文件,则菜单名称为【Commit Directory...】 

由于提交操作属于高频操作,所以为了进一步方便操作,在IDEA的工具栏中提供了提交操作的快捷按钮

注意: 
  • 我们交给Git进行版本控制的代码只需要传src源码以及必要的配置文件就可以了,其它的像target目录下的信息是不需要交给Git进行版本控制的,因为如果JDK版本一改变,那么你编译后的class文件内容不就变了,那不就是没用了。
  • 上传到Git当中的代码只是源码!

.iml文件是IDEA的配置文件! 

4.3 查看日志

  • 查看日志,既可以查看整个仓库的提交日志,也可以查看某个文件的提交日志
1)查看整个项目的提交日志:  
2)查看某个文件的提交日志  

注意:如果代码运行报错,千万别提交! 

  • 我们拉取项目后第一步就是切换分支,公司有分测试环境和生产环境等不同环境,这时候需要问同事该项目的测试环境是哪个分支,正常情况下测试分支是dev,生产环境是prod。
  • commit提交代码后,该代码是还没有到我们的远程仓库的,只是提交到我们的本地库,我们还需要去push代码,如果只是提交了,没有push,这时候同事拉取代码是看不到你提交的代码的,因为你代码还没到远程仓库。 
  • Commit Message:这里写上备注,通常是写你这提交的文件是做什么的,什么内容。
  • 接着勾选自己需要提交的文件即可。
  • Push代码的意思是推送到远程仓库
  • 每次push到远程仓库之前都先提交到本地仓库再说!
  • 代码冲突时不要选择rebase(变基),因为那会将别人的代码给覆盖掉,但是merge不会。

5. 远程仓库操作

远程仓库操作:

  • 查看远程仓库,本质上就是执行git remote命令
  • 添加远程仓库,本质上就是执行git remote add命令
  • 推送至远程仓库,本质上就是执行git push命令
  • 从远程仓库拉取,本质上就是执行git pull命令 

一个本地仓库就关联一个远程仓库! 

项目(本地仓库)如何关联远程仓库? 

看到下面整个提示说明推送成功:

 

通过IDEA从远程仓库去克隆:

 

或者关闭项目,点击Projects,点击Get from VCS,输入URL地址,点击Clone即可! 

Directory表示克隆出来的代码往哪个目录或工程下面放! 

5.1 查看远程仓库

操作过程如下:

 

在弹出的【Git Remotes】窗口中可以看到配置的远程仓库:

5.2 添加远程仓库

一个本地仓库可以配置多个远程仓库,在【Git Remotes】窗口中点击【+】来添加一个新的远程仓库:

【Update Project】 :从远程仓库拉取

6. 分支操作

  • 各个分支之间是相互独立,相互隔离的! 

分支操作:

  • 查看分支,本质上就是执行git branch命令
  • 创建分支,本质上就是执行git branch 分支名 
  • 切换分支,本质上就是执行git checkout 
  • 将分支推送到远程仓库,本质上就是执行git push
  • 合并分支,本质上就是执行git merge命令 

 

由于分支操作属于高频操作,所以在IDEA的状态栏中提供了分支操作的快捷按钮:  

 

注意:分支合并时需要注意合并的方向! 

  • 合并分支是把指定分支合并到当前分支! 

 

 

 

相关文章:

《Git学习笔记:IDEA整合Git》

在IDEA中集成Git去使用 通过Git命令可以完成Git相关操作,为了简化操作过程,我们可以在IDEA中配置Git,配置好后就可以在IDEA中通过图形化的方式来操作Git。 在IDEA开发工具中可以集成Git: 集成后在IDEA中可以看到Git相关图标&…...

Scipy 高级教程——统计学

Python Scipy 高级教程:统计学 Scipy 提供了强大的统计学工具,用于描述、分析和推断数据的分布和性质。本篇博客将深入介绍 Scipy 中的统计学功能,并通过实例演示如何应用这些工具。 1. 描述性统计 描述性统计是统计学中最基本的任务之一&…...

《向量数据库指南》RAG 应用中的指代消解——解决方案初探

随着 ChatGPT 等大语言模型(LLM)的不断发展,越来越多的研究人员开始关注语言模型的应用。 其中,检索增强生成(Retrieval-augmented generation,RAG)是一种针对知识密集型 NLP 任务的生成方法,它通过在生成过…...

CSS 一行三列布局,可换行(含grid网格布局、flex弹性布局/inline-block布局 + 伪类选择器)

效果 一、HTML <div class"num-wrap"><div class"num-item" v-for"num in 8" :key"num">{{ num }}</div></div> 二、CSS 1、grid网格布局&#xff08;推荐&#xff09; .num-wrap {// grid网格布局display…...

class_3:lambda表达式

1、lambda表达式是c11引入的一种匿名函数的方式&#xff0c;它允许你在需要函数的地方内联的定义函数&#xff0c;而无需单独命名函数&#xff1b; #include <iostream>using namespace std;bool compare(int a,int b) {return a > b; }int getMax(int a,int b,bool (…...

Hadoop 实战 | 词频统计WordCount

词频统计 通过分析大量文本数据中的词频&#xff0c;可以识别常见词汇和短语&#xff0c;从而抽取文本的关键信息和概要&#xff0c;有助于识别文本中频繁出现的关键词&#xff0c;这对于理解文本内容和主题非常关键。同时&#xff0c;通过分析词在文本中的相对频率&#xff0…...

SpringCloud.04.熔断器Hystrix( Spring Cloud Alibaba 熔断(Sentinel))

目录 熔断器概述 使用Sentinel工具 什么是Sentinel 微服务集成Sentinel 配置provider文件&#xff0c;在里面加入有关控制台的配置 实现一个接口的限流 基本概念 重要功能 Sentinel规则 流控规则 简单配置 配置流控模式 配置流控效果 降级规则 SentinelResource…...

python 八大排序_python-打基础-八大排序

## 排序篇 #### 二路归并排序 - 介绍 - 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。归并排序是一种稳定的排序方法。将已有序的子序列合并&#xff0c;得到完全有序的序列&#xff1b;即先使每个子序列…...

运维知识点-Sqlite

Sqlite 引入 依赖 引入 依赖 <dependency><groupId>org.xerial</groupId><artifactId>sqlite-jdbc</artifactId><version>3.36.0.3</version></dependency>import javafx.scene.control.Alert; import java.sql.*;public clas…...

我为什么要写RocketMQ消息中间件实战派上下册这本书?

我与RocketMQ结识于2018年&#xff0c;那个时候RocketMQ还不是Apache的顶级项目&#xff0c;并且我还在自己的公司做过RocketMQ的技术分享&#xff0c;并且它的布道和推广&#xff0c;还是在之前的首席架构师的带领下去做的&#xff0c;并且之前有一个技术神经质的人&#xff0…...

24校招,Moka测试开发工程师一面

前言 大家好&#xff0c;今天回顾一下楼主当时参加moka测试开发工程师的面试 对其中一些重要问题&#xff0c;我也给出了相应的答案 过程 自我介绍挑一个项目&#xff0c;详细介绍你在其中担任的职责如何安排工作的&#xff0c;有什么成果&#xff1f;回归测试如何设计&…...

Docker(网络,网络通信,资源控制,数据管理,CPU优化,端口映射,容器互联)

目录 docker网络 网络实现原理 网络实现实例 网络模式 查看Docker中的网络列表&#xff1a; 指定容器网络模式 模式详解 Host模式&#xff08;主机模式&#xff09;&#xff1a; Container模式&#xff08;容器模式&#xff09;&#xff1a; None模式&#xff08;无网…...

开发实践5_project

要求&#xff1a; &#xff08;对作业要求的"Student"稍作了变换&#xff0c;表单名称为“Index”。&#xff09;获得后台 Index 数据&#xff0c;作展示&#xff0c;要求使用分页器&#xff0c;包含上一页、下一页、当前页/总页。 结果&#xff1a; ① preparatio…...

蓝桥杯准备

书籍获取&#xff1a;Z-Library – 世界上最大的电子图书馆。自由访问知识和文化。 (zlibrary-east.se) 书评&#xff1a;(豆瓣) (douban.com) 一、观千曲而后晓声 别人常说蓝桥杯拿奖很简单&#xff0c;但是拿奖是一回事&#xff0c;拿什么奖又是一回事。况且&#xff0c;如果…...

AtCoder Beginner Contest 336 A-E 题解

比赛链接&#xff1a;https://atcoder.jp/contests/abc336比赛时间&#xff1a;2024 年 1 月 14 日 20:00-21:40 A题&#xff1a;Long Loong 标签&#xff1a;模拟题意&#xff1a;给定一个 n n n&#xff0c;输出 L L L、 n n n个 o o o和 n g ng ng。题解&#xff1a;按题意…...

node各个版本的下载地址

下载地址&#xff1a; https://nodejs.org/dist/ 可以下载多个版本&#xff0c;使用nvm控制切换&#xff08;需要先安装nvm再安装node&#xff09; nvm下载地址&#xff08;访问的是github&#xff0c;请科学上网&#xff0c;下载后解压安装exe即可&#xff09;&#xff1a;h…...

JVM实战(17)——模拟对象晋升

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 学习必须往深处挖&…...

帆软笔记-决策表报对象使用(两表格联动)

效果描述如下&#xff1a; 数据库中有个聚合商表&#xff0c;和一个储能表&#xff0c;储能属于聚合商&#xff0c;桩表中有个字段是所属聚合商。 要求帆软有2个表格&#xff0c;点击某个聚合商&#xff0c;展示指定的储能数据。 操作&#xff1a; 帆软选中表格单元&#xf…...

DataGear专业版 1.0.0 发布,数据可视化分析平台

DataGear专业版 1.0.0 正式发布&#xff0c;欢迎大家试用&#xff01; http://datagear.tech/pro/ DataGear专业版 基于 开源版 开发&#xff0c;新增了诸多企业级特性&#xff0c;包括&#xff1a; MySQL、PostgreSQL、Oracle、SQL Server以及更多兼容部署数据库支持OAuth2…...

AS,android SDK

android sdk中包含什么&#xff1f; Android平台工具&#xff08;Android Platform Tools&#xff09;&#xff1a; 这包括 adb&#xff08;Android Debug Bridge&#xff09;等工具&#xff0c;用于在计算机和 Android 设备之间进行通信、调试和数据传输。 Android命令行工具…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 &#xff08;1&#xff09;连接查询&#xff08;JOIN&#xff09; 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

Java编程之桥接模式

定义 桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型设计模式&#xff0c;它的核心意图是将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。这种模式通过组合关系来替代继承关系&#xff0c;从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

省略号和可变参数模板

本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...

Python 训练营打卡 Day 47

注意力热力图可视化 在day 46代码的基础上&#xff0c;对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...

小智AI+MCP

什么是小智AI和MCP 如果还不清楚的先看往期文章 手搓小智AI聊天机器人 MCP 深度解析&#xff1a;AI 的USB接口 如何使用小智MCP 1.刷支持mcp的小智固件 2.下载官方MCP的示例代码 Github&#xff1a;https://github.com/78/mcp-calculator 安这个步骤执行 其中MCP_ENDPOI…...

ZYNQ学习记录FPGA(二)Verilog语言

一、Verilog简介 1.1 HDL&#xff08;Hardware Description language&#xff09; 在解释HDL之前&#xff0c;先来了解一下数字系统设计的流程&#xff1a;逻辑设计 -> 电路实现 -> 系统验证。 逻辑设计又称前端&#xff0c;在这个过程中就需要用到HDL&#xff0c;正文…...

Spring事务传播机制有哪些?

导语&#xff1a; Spring事务传播机制是后端面试中的必考知识点&#xff0c;特别容易出现在“项目细节挖掘”阶段。面试官通过它来判断你是否真正理解事务控制的本质与异常传播机制。本文将从实战与源码角度出发&#xff0c;全面剖析Spring事务传播机制&#xff0c;帮助你答得有…...