IDEA开发工具使用技巧积累

一、IDEA 工具设置默认使用maven的settings.xml文件

第一步:打开idea工具,选中 File ——> New Projects Setup ——> Settings for New Projects
在这里插入图片描述
第二步:先设置下自动构建项目这个选项
在这里插入图片描述
第三步:选中 Build Tools ——> Maven,让后就可以设置自己安转的maven和settings.xml

在这里插入图片描述

二、Git——IDEA中的使用详解

1、IDEA中配置Git

选择File→Settings打开设置窗口,找到Version Control下的Git选项,然后配置Git路径。如果Git安装在默认路径下,IDEA可以自动找到。选择路径后点击右侧Test,出现版本号提示即可【由于IDEA版本问题,提示的方式可能不一致】。
在这里插入图片描述

2、将本地项目推送到远程仓库
2.1、创建项目远程仓库

这个使用GitHub为例,创建仓库spring_boot_test。如下图所示:
在这里插入图片描述
在这里插入图片描述

2.2、初始化本地仓库

创建完远程仓库之后,还要通过 IDEA 开发工具来初始化一个本地仓库,相比于 Git Bash 这样的命令行来说,IDEA 非常方便可以进行可视化的 Git 管理。
如下图所示,在工具栏中的 VCS,鼠标光标移动到 Import Version Control -> Create Git Repository,点击 Create Git Repository。
在这里插入图片描述
点击 Create Git Repository 之后,弹出一个小窗口,选择要初始化的本地项目。这里就以打开的项目 spring_boot_test 为例,对 spring_boot_test 进行 Git 本地初始化。
在这里插入图片描述

2.3、连接远程仓库

初始化本地仓库,并且创建完远程仓库项目之后,下一步就需要将本地和远程进行对接交互了。那么在交互之前,肯定是要进行建立连接的,就像打电话之前先呼号建立通话连接一样,之后再进行信息交换。
工具栏 VCS -> Git -> Remotes,点击 Remotes 添加远程仓库连接信息。
在这里插入图片描述
添加 Remote,输入 Name 和 URL,这里的 Name 如果没有特殊设置就是按照默认的 origin 来,也是 IDEA 自动补全的,建议在创建远程项目的时候不要轻易修改,这里的 URL 就是在远程项目信息中可以看到,我就不放出来了。
之后弹出一个登录的窗口,输入自己在GitHub注册的账号和密码即可,然后点击 Log In.
验证通过之后,Git Remotes 中便出现了远程项目的 Name 和 URL,最后点击 OK,这样就正式连接远程仓库项目了。
在这里插入图片描述

2.4、提交到本地仓库

在工具栏中,点击绿色的图标,表示 commit 到本地仓库。

弹出一个 Commit Changes 窗口,然后,选择我们的项目 redis-demo,会自动选中项目中的有变化的文件,第一次 commit 整个项目,会把所有项目文件进行 commit.
一般地,在 commit 操作之前,需要仔细查看每个文件细节内容,避免因为鼠标键盘无意按压动作导致对代码文件带来非本意的修改,这是要养成的习惯。
在 commit Message 中填入提交记录说明,最后点击右下角的 commit,提交项目 redis-demo 到本地仓库。
在这里插入图片描述
如果项目存在 warnings,即使项目没有错误可以正常运行,IDEA 还是会给出提示,询问是否要 review 一下,这里我直接忽略,直接 Commit 提交即可。
在这里插入图片描述提交完成之后,在 IDEA 界面下边信息提示栏中,Log 日志选择 Version Control,可以看到提交记录,表示提交成功。

在这里插入图片描述
在这里插入图片描述

2.5、推送到远程仓库

推送项目到远程仓库,按照下图操作即可。在 push 之前需要对每个文件内容进行检查,避免因为鼠标键盘无意按压动作导致对代码文件带来非本意的修改。推送成功之后,可以在 IDEA 中看到提示信息,也可以在远程仓库中查看结果。
在这里插入图片描述

3、克隆远程仓库到本地

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、基本操作
4.1、代码提交到暂存区

拉取代码后开始工作,比如这里我们修改了一些类中的代码,又新增了一些类。但是这个红色的要引起注意。
在这里插入图片描述
右键项目,选择Git→ Add 将文件信息加到暂存区。
在这里插入图片描述
此时可以看到刚刚的Teacher类变为绿色了。
在这里插入图片描述

4.2、暂存区代码提交到本地库

第一种方式,右键项目,选择Git→ Commit:
在这里插入图片描述第二种方式,点击菜单栏Git旁边绿色对号:
在这里插入图片描述
选择我们想要提交的文件,填写提交信息,然后Commit,主要用于将暂存区里的改动内容提交到本地仓库中。
在这里插入图片描述

4.3、推送到远程仓库

右键选择Git→ Repository→ Push 或者快捷键 Ctrl+Shift+K
在这里插入图片描述
调出界面后,排查没问题Push即可:
在这里插入图片描述

4.4、撤销本地提交

如果我们再提交到本地仓库后,推送到远程仓库之前,发现提交的代码有错误,此时可以撤销本地提交:
在这里插入图片描述在日志中右键点击需要撤销的记录,选择undo Commit即可:
选default就可以:
在这里插入图片描述此时Commit已经撤销,查看状态发现修改的文件已经回到暂存区:

在这里插入图片描述

4.5、撤销远程推送

如果在推送到远程仓库后,发现代码有误,也可以撤销。
1、方式一 Revert
例如我们修改了代码,然后推送到了远程仓库:
在这里插入图片描述
在这里插入图片描述
查看远程仓库,发现已经推送成功:
在这里插入图片描述这个时候发现推送错了,可以在Version Control的Log中选中想撤销的记录,选中Revert Commit:
在这里插入图片描述在这里插入图片描述
但是这个时候只是本地,不会影响到远程仓库,我们还需要做一次推送:
在这里插入图片描述
在这里插入图片描述
2、方式二 Reset

在这里插入图片描述在这里插入图片描述在这里插入图片描述
此时查看日志,如果我们想把第一条Commit撤销,那么也就意味着回到第二条Commit的位置
在这里插入图片描述
右键第二条记录,选择 Reset Current Branch…

在这里插入图片描述此时会出现四个选项:
在这里插入图片描述
Soft:暂存区【Add后】和你本地改动代码都在,新增的文件你会发现它是绿色
Mixed:本地改动代码在,暂存区没有了,你刚刚新增的文件是红色了
Hard:在选择的回退点之后的所有更改都会被丢弃(包括未提交和已提交的文件)。这种方式会删除回退点之后的所有文件,影响巨大,除非真的有此需要,否则不推荐使用。
Keep:在选择的回退点之后的所有已提交的更改会被丢弃,但未提交的文件会被完整地保存下来。如果真的有此需要,可以选择
选择 Soft或Mixed后强推一次就可以了。

4.6、更新代码

一般在将本地代码提交到远程仓库时,最好先更新下远程仓库的代码到本地,从而避免不必要的冲突。【养成良好的习惯,每天到公司就先更新代码】
通过IDEA的右上角更新图标,或者通过快捷键 Ctrl + T 进行拉取:
在这里插入图片描述
在这里插入图片描述
更新时有两种方式:

Merge incoming changes into the current brance
Rebase the current branch on top of incoming changes
当前情况:
在这里插入图片描述
Merge: 最后会形成一个新的 commit 提交
在这里插入图片描述
Rebase: 最后会把你的提交作为父节点延续下去
在这里插入图片描述

4.7、暂存修改

场景:
代码没有commit,但是需要pull代码
代码没有commit,但是需要切分支
右键项目->Git → Repository->Stash Changes
在这里插入图片描述
这样就可以把本地的改动暂存起来:
在这里插入图片描述在这里插入图片描述
pull完代码后再通过Unstash Changes把藏起来的代码释放出来:
在这里插入图片描述

5、分支操作
5.1、选择分支

实际项目中会存在很多分支,那我们需要拉取正确的分支来进行开发,在IDEA的右下角可以选择,默认是master分支。
在这里插入图片描述
想要哪个分支直接Checkout即可。

5.2、新建分支

在实际项目开发过程中,当遇到一个需求时,我们并不会直接就在主分支(master)上面进行开发,而是在主分支的基础上单独创建一个新的分支进行开发,当新建分支的代码经过代码评审以及测试验证通过,确认准确无误之后才会将新增的代码合并到主分支master,这才是一个规范的git操作流程。

因此,必须要掌握新建分支的过程,那么创建一个分支的过程如下图所示:

1、首先,单击 “Remote Branches” 下的 “origin/master” 分支,单击选择 “New Branch from Selected…”
在这里插入图片描述
2、其次,弹出对话框,输入你要新建的分支名称。例如,feature-1.1.0,单击“Checkout”,表示创建该分支同时切换到 feature-1.1.0 分支。
在这里插入图片描述
然后,创建分支 feature-1.1.0 成功之后,可以在 “Local Branches” 下看到此时有两个分支分别为feature-1.1.0 和 master,这表明本地仓库中已经有了新建的分支了。
在这里插入图片描述
3、但是 “Remote Branches” 下依然只有一个 master 分支,表明在我们的远程仓库依然只有一个master 分支,因此我们还需要把在本地仓库新建的分支推送到远程仓库中,这样就可以在远程仓库中看到新建的分支了。

单击 feature-1.1.0 ,然后在左边单击 “Push” ,弹出推送对话框。单击 “Push” 推送到远程仓库,这样分支新建操作彻底完成,可以看到在"Remote Branches"分支下面出现了“feature-1.1.0”,我们可以在该分支进行编码并进行拉取和推送操作。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.3、比较分支

分支比较就是对比不同分支之间的差异。例如,需要比较当前所在分支与 master 分支之间的差异,可以选择需要对比的 master 分支,然后单击 “Compare with Current”,在弹出的窗口可以看到具体的差异。
在这里插入图片描述
然后和master分支比较:
在这里插入图片描述
在这里插入图片描述

5.4、合并分支
合并分支是将 A 分支合并到 B 分支,A 分支称为源分支,B 分支称为目标分支。
注意事项:master 分支是我们部署在生产环境服务器的分支,master 分支的代码往往是最新的代码。通常我们有一个新的需求时不会直接在 master 分支进行实施编码,而是基于 master 分支拉出一个新的分支,在拉出来的新分支进行实施编码。只有当新分支的代码经过 code review 以及测试联调通过之后,才会将代码合并到 master 分支等待部署上线。合并分支的流程务必规范:先将 master 分支合并到新分支,之后再将新分支合并到 master 分支。 这样做的原因是因为一个项目通常由多个人负责,可能在你开发的过程中,有新的代码已经合并到 master 分支并且部署上线了,但是你拉的新分支上的代码依旧是 master 分支的老代码。所以需要先更新你拉的新分支上的代码,将其他人更新的代码合并过来,保证你拉的新分支代码与最新的 master 分支代码一致(以免因为丢失最新修改的代码而造成线上事故)之后再将你的新拉的分支代码合并到 master 分支上面。

以 feature-1.1.0 分支和 master 分支为例,将 feature-1.1.0 分支合并到 master 分支中。

1、首先,切换到 feature-1.1.0 分支,将 master 分支合并到 feature-1.1.0 分支中。单击 “Local Branches” 下的 master,选择 “Merge into Current”,这里的 Current 是指目标(feature-1.1.0)分支 ,也就是将 master 分支合并到 feature-1.1.0 分支中,合并成功之后可以看到提示。
在这里插入图片描述
2、然后,切换到 master 分支下,将 feature-1.1.0 分支合并到 master 分支。
在这里插入图片描述
在这里插入图片描述
3、最后,我们可以看到在 “Local Branches” 下的 master 分支有个绿色的小箭头,这是因为我们刚才的分支合并在本地仓库操作的,并没有将远程的 feature-1.1.0 分支合并到 master 分支中。因此,我们还需要将 master 分支推送到远程仓库,点击 Push 或者使用快捷键 Ctrl+Shift+K 推送到远程仓库即可,推送成功之后绿色提示小箭头也会消失。
在这里插入图片描述
在这里插入图片描述

5.5、删除分支

在删除分支之前,建议先切换到(Checkout)其他分支,例如,Checkout到master分支,当然这并不强制,只是为了方便删除分支而已。

1、首先,在 “Local Branches” 下单击分支 feature-1.1.0,左边弹出选项选中 “Delete”.
在这里插入图片描述
2、然后,在对话框中勾选“Delete tracking local feature-1.1.0 as well”,意思就是同时删除远程和本地仓库中的 feature-1.1.0 分支。
在这里插入图片描述

6、解决代码冲突

场景:合并分支时,远程推送时,远程仓库版本领先于本地版本
1、修改本地代码,并提交到本地库
在这里插入图片描述
2、线上浏览器修改代码并提交
在这里插入图片描述
3、本地推送到远程库
在这里插入图片描述
因为远程库版本领先于本地库,所以推送失败

在这里插入图片描述
4、解决冲突、合并代码

可以直接选择全盘接收他人代码,也可以选择全部使用自己的代码:
在这里插入图片描述
也可以单独选择有冲突的文件,手动修改:
在这里插入图片描述
因为是注释,所以我们选择接收双方的修改:
在这里插入图片描述
然后再次推送即可成功:
在这里插入图片描述

7、常用快捷键

快捷键 解释
Ctrl+Alt+A 将文件添加到暂存区
Ctrl+K 提交变化到本地仓库
Ctrl+Shift+K 将本地仓库的变化同步推送到远程仓库
Ctrl+T 将远程仓库的代码合并更新到本地
Ctrl+Alt+Z 代码回滚

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

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

相关文章

word删除空白页 | 亲测有效

想要删掉word里面的末尾空白页,但是按了delete之后也没有用 找了很久找到了以下亲测有效的方法 1. 通过鼠标右键在要删除的空白页面处显示段落标记 2. 在字号输入01,按ENTER(回车键) 3.成功删除了!! PS…

Selenium爬虫技术:如何模拟鼠标悬停抓取动态内容

介绍 在当今数据驱动的世界中,抓取动态网页内容变得越来越重要,尤其是像抖音这样的社交平台,动态加载的评论等内容需要通过特定的方式来获取。传统的静态爬虫方法难以处理这些由JavaScript生成的动态内容,Selenium爬虫技术则是一…

基于SSM大学校医院信息管理系统的设计

管理员账户功能包括:系统首页,个人中心,校医管理,用户管理,在线问诊管理,线上挂号管理,病例记录管理,系统管理 校医账号功能包括:系统首页,个人中心&#xf…

用Java爬虫API,轻松获取taobao商品SKU信息

在电子商务的世界里,SKU(Stock Keeping Unit,库存单位)是商品管理的基础。对于商家来说,SKU的详细信息对于库存管理、价格策略制定、市场分析等都有着重要作用。taobao作为中国最大的电子商务平台之一,提供…

uniapp 微信小程序分包操作

1. 在项目根目录创建一个新的目录,名称为分包名称 2. 打开manifest.json,选择源码视图,加入以下代码 "optimization" : {"subPackages" : true } 3. 在pages.json中,pages后面添加分包代码 "subPackag…

Linux基础命令(入门)

linux 用户 root 用户 一个特殊的管理帐户 也被称为超级用户 root已接近完整的系统控制 对系统损害几乎有无限的能力 除非必要,不要登录为 root 普通( 非特权 ) 用户权限有限 造成损害的能力比较有限 linux的哲学思想(优点&#xf…

【Canvas与图标】制作电脑桌面图标

【成图】 制成的三种图标&#xff0c;都是120*120的。 制作时观察的大图 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>desk…

操作系统学习笔记2.1进程与线程

文章目录 概念 组成 特征状态与转换进程控制1. 进程的状态2. 进程控制块&#xff08;PCB&#xff09;3. 进程的创建与终止进程的创建进程的终止 4. 进程调度5. 进程间通信&#xff08;IPC&#xff09;6. 上下文切换 进程通信1. **管道&#xff08;Pipes&#xff09;**2. **信号…

C++ | Leetcode C++题解之第502题IPO

题目&#xff1a; 题解&#xff1a; typedef pair<int,int> pii;class Solution { public:int findMaximizedCapital(int k, int w, vector<int>& profits, vector<int>& capital) {int n profits.size();int curr 0;priority_queue<int, vect…

Prometheus 告警

github alertmanager 文档 Prometheus Alerting rules Prometheus alerting configuration 前几篇文章讲了Prometheus的监控&#xff0c;这一篇文章&#xff0c;讲通过监控指标触发告警 常用的告警方式有发邮件、调用指定接口(webhook) 等。本文讲解webhook方式&#xff0c;完…

ARL 灯塔 | ARL 灯塔 — 字典替换

关注这个工具的其它相关内容&#xff1a;自动化信息收集工具 —— ARL 灯塔使用手册 - CSDN 博客 0x01&#xff1a;ARL 字典替换 —— 理论篇 ARL&#xff08;Asset Reconnaissance Lighthouse&#xff09;在进行目标域名探测时&#xff0c;依赖的是其内置的默认字典集。然而在…

从零开始:Python与Jupyter Notebook中的数据可视化之旅

目录 **理解数据与数据可视化的基本流程****了解Python与其他可视化工具****掌握Anaconda、Jupyter Notebook的常用操作方法****原理** 环境配置1. **安装Anaconda软件&#xff0c;创建实验环境**2. **安装Jupyter Notebook**3. **创建第一个Jupyter Notebook文本**&#xff08…

nnUnet 大模型学习笔记(续):训练网络(3d_fullres)以及数据集标签的处理

目录 1. 数据集处理 1.1 实现脚本 1.2 json文件 2. 设置读取路径 2.1 设置路径 2.2 数据集转换 2.3 数据集预处理 2.4 训练&#xff08;3d_fullres) 3. 训练结果展示 关于nnUnet 数据集的处理和环境搭建&#xff0c;参考上文&#xff1a;第四章&#xff1a;nnUnet大模…

94、Python之异常:自定义异常以满足业务个性化需求

引言 前面介绍了Python中内置的异常类的继承体系&#xff0c;通常来说&#xff0c;这些异常类已经能够满足各种异常的场景需要。但是&#xff0c;有时还是需要自定义异常&#xff0c;来满足一些个性化的需求&#xff0c;以及更加可控、精细化的异常管理。 本文就来介绍一下如…

使用InternVL、LMDeploy和GTE搭建多模态RAG系统

如何将视觉大模型&#xff08;VLM&#xff09;与 多模态RAG 结合起来&#xff0c;创建服装搜索和搭配推荐&#xff01;本文展示了InternVL模型在分析服装图像和提取颜色、款式和类型等关键特征方面的强大功能。 InternVL2是国内首个在MMMU(多学科问答)上突破60的模型&#xff0…

MT-Pref数据集:包含18种语言的18k实例,涵盖多个领域。实验表明它能有效提升Tower模型在WMT23和FLORES基准测试中的翻译质量。

2024-10-10&#xff0c;由电信研究所、里斯本大学等联合创建MT-Pref数据集&#xff0c;它包含18种语言方向的18k实例&#xff0c;覆盖了2022年后的多个领域文本。通过在WMT23和FLORES基准测试上的实验&#xff0c;我们展示了使用MT-Pref数据集对Tower模型进行对齐可以显著提高翻…

【云从】十、常见安全问题与云计算的计费模式

文章目录 1、常见安全问题1.1 DDoS攻击1.2 病毒攻击1.3 木马攻击1.4 代码自身漏洞 2、安全体系3、云计算的计费模式4、常见云产品的计费方案5、云产品计费案例 1、常见安全问题 1.1 DDoS攻击 通过分布在各地的大量终端&#xff0c;同时向目标发送恶意报包&#xff0c;以占满目…

【C++贪心】1536. 排布二进制网格的最少交换次数|1880

本文涉及知识点 C贪心 决策包容性 LeetCode1536. 排布二进制网格的最少交换次数 给你一个 n x n 的二进制网格 grid&#xff0c;每一次操作中&#xff0c;你可以选择网格的 相邻两行 进行交换。 一个符合要求的网格需要满足主对角线以上的格子全部都是 0 。 请你返回使网格满…

精通CSS布局:探索经典的网页布局样式和技术

一、经典两列布局样式 1.概念 许多网站有一些特点&#xff0c;如页面顶部放置一个大的导航或广告条&#xff0c;右侧是链接或图片&#xff0c;左侧放置主要内容&#xff0c;页面底部放置版权信息等。 一般情况下&#xff0c;页面布局的两列都有固定宽度&#xff0c;而且从内容…

7.hyperf安装【Docker】

- 前言&#xff1a;为了与容器中的mysql通信&#xff0c;先运行mysql&#xff0c;再使用 --link关联 一、 拉取 php版本为8.2的版本 8.3的版本&#xff0c;启动框架时&#xff0c;报错。 docker pull hyperf/hyperf:8.2-alpine-vedge-swoole-slim二、 运行hyperf环境容器 --l…