Git | 在IDEA中使用Git

目录
一、在IDEA中配置Git
1.1 配置Git
1.2 获取Git仓库
1.3 将本地项目推送到远程仓库
1.4 .gitignore文件的作用
二、本地仓库操作
2.1 将文件加入暂存区
2.2 将暂存区的文件提交到版本库
2.3 查看日志
三、远程仓库操作
3.1 查看和添加远程仓库
3.2 推送至远程仓库
3.3 从远程仓库拉取
五、分支操作
一、在IDEA中配置Git
1.1 配置Git
在IDEA中使用Git,本质上是使用安装在本地的git软件,(并不是使用远程仓库,或者说使用码云Gitee)。
打开IDEA,点击File -> Setting (快捷键是CTRL+alt+S),搜索Git并配置Git的安装目录

1.2 获取Git仓库
在IDEA中使用Git获取仓库的两种方式:
| 本地初始化仓库 | 从远程仓库克隆 |
| 相当于 git init 命令,其实就是把自己的项目变成一个git仓库,Create Git Repository | 相当于 git clone 命令,其实是把远程仓库的项目拷贝下来,Get From Version Control |
本地初始化仓库步骤:
(1)新建一个项目
这里以新建Maven项目为例,不知道如何新建Maven项目可以查看这篇文章,IDEA创建Maven项目

(2)将这个项目所在目录变成一个Git仓库,从而实现用Git管理这个项目



(3)创建好本地仓库后,IDEA中会出现几个Git操作的图标

从远程仓库克隆步骤:
从远程仓库获取是以后工作中用的更多的,因为当你进入到某家公司的时候,往往项目已经开发到一定阶段了,因此此时我们要做的就是从远程仓库获取项目。
(1)点击VCS,点击Get From Version Control
当使用IDEA新建项目并添加到本地仓库之后,有些版本的IDEA认为你已经使用了VCS,所以不会出现VCS了。
此时可以点击File -> New -> Project From Version Control进行从远程仓库克隆代码。

1.3 将本地项目推送到远程仓库
将本地项目推送到远程仓库时遇到的问题:
1.拒绝Push推送

这个报错的意思大概是,更新被拒绝是因为远程仓库的部分文件本地仓库没有,这通常发生在本地新建仓库之后第一次要推送到远程仓库时。
解决方案:
(1)先拉取远程仓库的分支(一般为master,origin一般指远程仓库的名字)
2.在Pull时遇到的问题-拒绝合并不相关的请求

出现这个问题的最主要原因是本地仓库和远程仓库实际上是两个独立的仓库。
解决方案:
点击IDEA中的命令提示符,输入下面的命令,执行即可。

git pull origin master --allow-unrelated-histories

(2)再次push

至此,将本地仓库的项目推送至远程仓库成功!
1.4 .gitignore文件的作用
.gitignore文件用于定义哪些文件不需要交给Git管理,文件名是固定的,不可修改。
(1).gitignore文件的生成
在创建远程仓库时,可以创建这个文件。

(2).gitignore对应的常用Java模板
# Compiled class file
*.class# Eclipse
.project
.classpath
.settings/# Intellij
*.ipr
*.iml
*.iws
.idea/# Maven
target/# Gradle
build
.gradle# Log file
*.log
log/# out
**/out/# Mac
.DS_Store# others
*.jar
*.war
*.zip
*.tar
*.tar.gz
*.pid
*.orig
temp/
二、本地仓库操作
2.1 将文件加入暂存区

此时如果要将文件加入暂存区,就是相当于 git add 这个命令,
未暂存的文件是红色,已暂存的文件是蓝色。
(1)可以点击IDEA中的这个按钮:

(2) 或者右击文件选择Add:

(3)IDEA设置版本控制工具自动Add

2.2 将暂存区的文件提交到版本库
这个操作相当于 git commit -m 这个命令,点击IDEA中的图标或者右击都可以提交。

2.3 查看日志
相当于 git log 这个命令,点击IDEA中的Git图标


三、远程仓库操作
3.1 查看和添加远程仓库


3.2 推送至远程仓库

3.3 从远程仓库拉取


五、分支操作
在IDEA中可以进行查看分支,创建分支,切换分支,推送分支到远程仓库,合并分支的操作。


切换分支时遇到的问题:
1.如果当前分支还有未提交的内容,即unchanges files
那么切换分支后当前分支未修改的内容会带到另外一个分支上去。
解决方案:
分支修改后要先提交再切换
2.切换分支后弹出提示 Workspace associated with branch 'master' has been restored
与分支“master”关联的工作区已恢复
解决方案:
暂不理会,x掉即可


至此,在IDEA中使用Git的入门教程就到此结束,
希望自己在这之后更能理解使用Git工具进行团队开发的意义和作用。
如果本篇文章对你有帮助,欢迎一键三连!
相关文章:
Git | 在IDEA中使用Git
目录 一、在IDEA中配置Git 1.1 配置Git 1.2 获取Git仓库 1.3 将本地项目推送到远程仓库 1.4 .gitignore文件的作用 二、本地仓库操作 2.1 将文件加入暂存区 2.2 将暂存区的文件提交到版本库 2.3 查看日志 三、远程仓库操作 3.1 查看和添加远程仓库 3.2 推送至远程仓…...
< Linux >:Linux 进程概念 (4)
目录 五、孤儿进程 六、进程优先级 6.1、基本概念 6.2、查看时实系统进程 6.3、PRI and NI 七、其他概念 四、X 状态:死亡状态 所谓进程处于 X 状态(死亡状态)代表的就是该进程已经死亡了,即操作系统可以随时回收它的资源(操作系统也可以…...
七、Java框架之MyBatisPlus
黑马课程 文章目录1. MyBatisPlus入门1.1 MyBatisPlus入门案例步骤1:创建spring boot工程步骤2:配置application.yml步骤3:创建数据库表(重点)步骤4:编写dao层步骤5:测试1.2 标准数据层开发标准…...
C语言柔性数组
目录什么是柔性数组柔性数组的使用什么是柔性数组 柔性数组是在C99中定义的 结构体的最后一个元素允许是未知大小的数组,这就叫柔性书组 柔性数组的长度可以写成0,也可以不规定数组长度 下面两种写法都是正确的 struct S { int i; int a[0];//柔性数…...
支付功能测试用例
Author:ChatGPT用例设计下面是一些支付功能测试用例:账户余额检查:测试用户的账户余额是否准确。支付方式选择:测试用户可以使用的支付方式,包括信用卡、借记卡、电子钱包等。支付金额确认:测试用户输入的支…...
牛客网Python篇数据分析习题(一)
1.现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔): Nowcoder_ID:用户ID Level:等级 Achievement_value:成就值 Num_of_exercise&a…...
【C语言】“指针类型”与“野指针”
文章目录一、指针是什么❔二、指针和指针类型1.指针-整数2.指针解引用三.野指针1.引起野指针的原因2.如果避免野指针完结一、指针是什么❔ 指针也就是 内存地址 ,在计算机上我们访问数据需要通过内存地址来访问,在C语言中,指针变量是用来存放…...
Linux:软链接和硬链接的理解
Linux通过命令行创建快捷方式使用的命令是ln,这里就涉及到了软链接和硬链接,确实有些不好理解,如果你也一样,那么可以继续看下去了 目录ln命令语法实操创建软链接:ln -s [源文件或目录][目标文件或目录]创建硬链接&…...
力扣HOT100 (1-5)
目录 1.两数之和 2.两数相加 拓展到牛客的TOP101的BM11( 链表相加(二)) 3.无重复的最长子串(牛客BM92) 解法1: 解法2: 4.寻找两个正序数组的中位数 5.最长回文子串 1.两数之和 思路:用Has…...
车载基础软件——AUTOSAR CP典型应用案例SOME/IP和TSN时间同步
我是穿拖鞋的汉子,魔都中坚持长期主义的一个屌丝工程师! 今天是2023年2月7日,上海还在下着雨,估计是到了梅雨时节(提前到来?),真想说句我劝天公重安排,不让梅雨早时来!!! 老规矩分享一段喜欢的文字,避免自己成为高知识低文化的工科男: “ 我们只需做的,是走好…...
【Linux】操作系统与进程的概念
目录 冯诺依曼体系 注意 为什么CPU不直接访问输入或输出设备? 跨主机间数据的传递 操作系统 管理 进程 描述进程 进程的查看和终止 bash 通过系统调用创建子进程 fork的辨析 冯诺依曼体系 🥖冯诺依曼结构也称普林斯顿结构,是一种将…...
(1分钟突击面试) 高斯牛顿、LM、Dogleg后端优化算法
高斯牛顿法 LM法 DogLeg方法编辑切换为居中添加图片注释,不超过 140 字(可选)知识点:高斯牛顿是线搜索方法 LM方法是信赖域方法。编辑切换为居中添加图片注释,不超过 140 字(可选)这个就是JTJ是…...
d3.js与echarts对比
D3.js 和 ECharts 是两种常用的数据可视化工具,它们有着不同的优缺点: D3.js: 优点: 功能强大,提供了极高的灵活性和定制性,支持多种图表类型,如柱状图、饼图、散点图、树图、网络图等。 可以…...
机器学习之K-means原理详解、公式推导、简单实例(python实现,sklearn调包)
目录1. 聚类原理1.1. 无监督与聚类1.2. K均值算法2. 公式推导2.1. 距离2.2. 最小平方误差3. 实例3.1. python实现3.2. sklearn实现4. 运行(可直接食用)1. 聚类原理 1.1. 无监督与聚类 在这部分我今天主要介绍K均值聚类算法,在这之前我想提一…...
OBS 进阶 一个从自定义对话框中 传参到插件的例子
目录 一、自定义对话框,传参综合例子 1、自定义对话框 1)自定义对话框类...
在Linux和Windows上编译datax-web-ui源码
记录:375场景:在CentOS 7.9操作系统上,使用apache-maven-3.8.7安装编译datax-web-ui源码。在Windows上操作系统上,使用apache-maven-3.8.7编译datax-web-ui源码。版本:JDK 1.8 node-v14.17.3 npm-6.14.13datax-web-ui开…...
React组件生命周期管理
组件生命,就是组件在不同阶段提供对应的钩子函数,来处理逻辑操作。比如初始化阶段,我们需要初始化组件相关的状态和变量。组件销毁阶段时,我们需要把一些数据结构销毁来节约内存。 React组件生命周期 React组件生命周期分为三个阶段:挂载阶段【Mount】、更新阶段【Updat…...
Linux:全志H3图像codec使用笔记
1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。 2. 图像 codec 概述 图像编解码器(codec) 包含 Encoder 和 Decoder 两部分功能。我们用下列分别说明 Encoder 和 Decoder 的工作方式。 ----------…...
【Python小游戏】通过这款专为程序员设计的《极限车神》小游戏,你的打字速度可以赢过专业录入员,这个秘密98%的人都不知道哦~(爆赞)
导语 哈喽,我是你们的木木子👸! 今天小编要为大家介绍一款小编自己用代码码出来的赛车风格的打字小游戏 取名暂定为《🚗极限车神🚗》打字小游戏。 这款Pygame小游戏在玩法上可以说十分创新,不仅能游戏还…...
Springboot扩展点之BeanPostProcessor
前言 Springboot(Spring)的扩展点其实有很多,但是都有一个共同点,都是围绕着Bean和BeanFactory(容器)展开的,其实这也很好理解,Spring的核心是控制反转、依赖注入、面向切面编程&…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...
