当前位置: 首页 > 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命令行工具…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名&#xff08;Class Name)2.协议名&#xff08;Protocol Name)3.方法名&#xff08;Method Name)4.属性名&#xff08;Property Name&#xff09;5.局部变量/实例变量&#xff08;Local / Instance Variables&…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念&#xff0c;确保一个租户&#xff08;在这个系统中可能是一个公司或一个独立的客户&#xff09;的数据对其他租户是不可见的。在 RuoYi 框架&#xff08;您当前项目所使用的基础框架&#xff09;中&#xff0c;这通常是通过在数据表中增加一个…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

在 Spring Boot 中使用 JSP

jsp&#xff1f; 好多年没用了。重新整一下 还费了点时间&#xff0c;记录一下。 项目结构&#xff1a; pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...

[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG

TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码&#xff1a;HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践

在 Kubernetes 集群中&#xff0c;如何在保障应用高可用的同时有效地管理资源&#xff0c;一直是运维人员和开发者关注的重点。随着微服务架构的普及&#xff0c;集群内各个服务的负载波动日趋明显&#xff0c;传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...