8、IDEA集成Git

news/2024/10/6 4:41:43/文章来源:https://www.cnblogs.com/Javaer1995/p/18203196

8.1、配置Git忽略文件

8.1.1、忽略文件的原因

在使用 IDE 工具时,会自动生成一些和项目源码无关的文件,所以可以让 Git 忽略这些文件。

此外,把这些无关文件忽略掉,还能够屏蔽不同 IDE 工具之间的差异。

8.1.2、创建忽略规则文件

image

如上图所示,在用户家目录下创建了一个忽略规则文件 git.ignore(前缀名随便起,后缀必须是 .ignore,推荐命名为 git.ignore)。

实际上,这个忽略规则文件在任意位置创建都可以,但为了方便让 ~/.gitconfig 文件引用,推荐放在用户家目录下。

# Compiled class file
*.class# Log file
*.log# BlueJ files
*.ctxt# Mobile Tools for Java (J2ME)
.mtj.tmp/# Package Files
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*.classpath
.project
.settings
target
.idea
*.iml

8.1.3、引用忽略规则文件

image

如上图所示,在 .gitconfig 文件(该文件的来源见 3.2节 )中,引用(刚创建的)一个忽略规则文件。

git config --global core.excludesfile 忽略规则文件路径/git.ignore

注意:所引用的文件路径分隔符,要使用“正斜线(/)”,不要使用“反斜线(\)”。
此外,必须使用执行命令的形式来设置引用文件,直接在 .gitconfig 文件中编辑文本内容会导致引用失败,出现下面的警告:
warning: unable to access '‪C:/Users/liaojy/git.ignore': Invalid argument

8.2、定位Git程序

8.2.1、使用IDEA创建一个项目

image

如上图所示,创建一个新项目。

image

如上图所示,该新项目是一个 maven 项目。

image

如上图所示,该项目的名称设置为 git-test 。

image

如上图所示,设置该项目所在的路径。

8.2.2、选择本地已安装的Git程序

image

如上图所示,打开IDEA的 Settings(设置)界面。

image

如上图所示,在 Settings(设置)界面中,找到 Git 的设置界面。

image

如上图所示,选择了一个本地已安装的Git程序,并且测试该 Git 程序是正常的。

8.3、初始化本地库

8.3.1、查看项目的文件夹

image

如上图所示,右击项目名,然后点击“Show in Explore”,便能查看项目的文件夹。

image

如上图所示,在项目的文件夹中,并没有“.git”子文件夹,说明该项目还没有被 Git 所管理到。

8.3.2、使用IDEA初始化本地库

image

如上图所示,在 VCS(Version Control Settings)菜单中点击“Create Git Repository”选项。

image

在“Create Git Repository”弹窗中,会默认选中当前项目,此时只需要点击“OK”,即可将该项目初始化为 Git 本地库。

8.3.3、确认初始化本地库已成功

image

如上图所示,在项目的文件夹中,已存在“.git”子文件夹,说明该项目已成功被 Git 所管理到。

注意:如果 8.1 节的忽略规则文件的配置操作是成功的话,在“.diea”目录中是没有".gitignore"的;
否则,IDEA 会在“.diea”目录中,自动生成一个该项目的忽略规则配置文件".gitignore",在这个文件中也可以配置要 Git 忽略的文件。

image

如上图所示,文件名是红色,说明该文件已被 Git 检测到,但是还没被 Git 追踪(即该文件还没被添加到暂存区)。

8.4、添加到暂存区

注意:必须先初始化本地库后,才能将文件添加到暂存区。

8.4.1、将某个文件添加到暂存区

image

如上图所示,右击要添加到暂存区的文件,在菜单栏里选择“Git”->“+Add”,即可将该文件添加到暂存区。

image

如上图所示,将“pom.xml”文件添加到暂存区后,颜色变成了绿色,即说明该文件已成功被 Git 追踪,但还没有被提交到本地库。

注意:如果默认的文件状态颜色区分不明显,可以在“Settings”中自定义设置文件状态的颜色:
image

8.4.2、创建一个文件

image

如上图所示,新创建了一个Java文件“GitTest”,此时 Idea 便会自动弹窗提示是否将这个新创建的文件加入暂存区。

注意:本例出于演示需要,点击了“Cancel”;在实际情况中,点击“Add”即可。

image

如上图所示,虽然该 Java 文件还没加入暂存区,但是并不影响其编译运行使用。

注意:如果在编译运行时报错“Error:java: 错误: 不支持发行版本 5”,请参考该解决方案。

8.4.3、将整个项目添加到暂存区

image

如上图所示,右击要添加到暂存区的项目,在菜单栏里选择“Git”->“+Add”,即可将该项目所有文件(忽略文件除外)添加到暂存区。

image

如上图所示,将整个项目添加到暂存区后,该项目所有文件(忽略文件除外)的颜色变成了绿色,即说明这些文件已成功被 Git 追踪,但还没有被提交到本地库。

8.5、提交到本地库

注意:必须先将文件添加到暂存区后,才能将文件提交到本地库。

8.5.1、第一次提交

image

如上图所示,右击要提交到本地库的项目,在菜单栏里选择“Git”->“Commit Directory”,即可将该项目所有(已添加到暂存区的)文件提交到本地库。

image

如上图所示,在提交弹窗中,可以看到将要提交到本地库的文件有哪些,点击该文件还能看到具体内容。

在“Commit Message”中填写提交信息,然后点击“Commit”按钮,即可完成提交到本地库的操作。

image

如上图所示,当文件被提交到本地库后,文件的颜色恢复为最原始的黑色。

8.5.2、第二次提交

image

如上图所示,已被 Git 追踪过的文件,经过修改内容后,文件颜色会变成蓝色。

image

如上图所示,因为项目所有的文件在之前已被追踪过,所以可以将修改直接提交到本地库。

image

如上图所示,在提交弹窗中,可以看到将要提交到本地库的文件有哪些变化。

在“Commit Message”中填写提交信息,然后点击“Commit”按钮,即可完成提交到本地库的操作。

image

如上图所示,当修改后的文件被提交到本地库后,文件的颜色恢复为最原始的黑色。

8.5.3、第三次提交

image

如上图所示,已被 Git 追踪过的文件,经过修改内容后,文件颜色会变成蓝色。

image

如上图所示,因为项目所有的文件在之前已被追踪过,所以可以将修改直接提交到本地库。

image

如上图所示,在提交弹窗中,可以看到将要提交到本地库的文件有哪些变化。

在“Commit Message”中填写提交信息,然后点击“Commit”按钮,即可完成提交到本地库的操作。

image

如上图所示,当修改后的文件被提交到本地库后,文件的颜色恢复为最原始的黑色。

8.6、切换版本

8.6.1、查看提交版本信息

image

如上图所示,在 IDEA 底部的 “Version Control”->“Log”界面中,便可看到所有提交的列表,每次提交涉及到了哪些文件。

此外,还能看到分支指向哪个提交版本,HEAD 指针指向哪个分支。

在本例中,HEAD 指针指向 master 分支,master 分支指向第三次提交版本;因此工作区显示的是第三次提交的版本内容。

8.6.2、切换到其他的提交版本

image

如上图所示,右击要切换到的提交版本,再点击“ Checkout Revision '版本号' ”,即可切换到该版本。

image

如上图所示,点击切换版本后,IDEA 会在该版本创建一个临时匿名分支,HEAD 指针指向该临时匿名分支;因此工作区显示的是该版本的内容。

8.6.3、切换回原来的maser分支版本

image

如上图所示,右击 master 分支指向的提交版本,再点击“Checkout”->“master”,即可切换回原来的maser分支版本。

image

如上图所示,切换回原来的maser分支版本后,HEAD 指针指向 master 分支,master 分支指向第三次提交版本;因此工作区显示的是第三次提交的版本内容。

注意:切换回原来的maser分支版本后,之前 IDEA 为其他版本创建(仅供回看目的)的临时匿名分支会被自动删除。

8.7、创建分支

8.7.1、方式一

image

如上图所示,右击要创建分支的项目,在菜单栏里选择“Git”->“Repository”->“Branches”,即可打开分支操作的弹窗。

image

如上图所示,在分支操作的弹窗中,可以选择执行三个操作:New Branch(创建新分支)、Checkout Tag or Revision(切换到其他分支)、Local Branches Rename(对分支重命名)。

注意:后续操作请参考方式二的。

8.7.2、方式二

image

如上图所示,IDEA 右下角有当前 Git 分支的名称,点击即可打开分支操作的弹窗。

image

如上图所示,在创建新分支的弹窗中,输入新分支的名称(本例为 hot-fix ,即热修复的意思),点击 OK 即可创建一个新分支。

“Checkout Branch”复选框是默认选中的,意思是创建新分支后,自动切换到新分支。

image

如上图所示,创建新分支成功后,IDEA 右下角当前 Git 分支名称是新分支的名称,且新分支和 master 分支指向了同样的提交版本。

8.8、切换分支

image

如上图所示,在分支操作的弹窗中,选中要切换到的分支名称,然后点击“Checkout”即可切换到该分支。

image

如上图所示,已成功切换到 master 分支。

8.9、正常合并分支

8.9.1、在hot-fix分支新增内容

image

如上图所示,在 hot-fix 分支中,新增了一行内容;经过修改内容后,文件颜色会变成蓝色。

8.9.2、提交hot-fix分支的新增内容

image

image

如上图所示,多了一个提交版本,且 hot-fix 分支指向该提交版本。

8.9.3、切换到master分支

image

如上图所示,HEAD 指向了 master 分支,表示现在切换到了 master 分支,这时在工作区已看不到 hot-fix 分支已提交的新增内容。

8.9.4、合并hot-fix分支到当前分支

image

如上图所示,点击 IDEA 右下角当前 Git 分支名称,选择要合并的分支名称(本例为 hot-fix ),然后点击“Merge into Current”,即可将 hot-fix 分支合并到当前分支(本例为 master )。

image

如上图所示,如果内容没有冲突,分支直接合并成功,分支合并成功以后,会自动提交,无需再手动提交到本地库。

8.10、冲突合并分支

8.10.1、在hot-fix分支新增内容

image

如上图所示,在 hot-fix 分支中,新增了一行内容;经过修改内容后,文件颜色会变成蓝色。

8.10.2、提交hot-fix分支的新增内容

image

image

如上图所示,多了一个提交版本,且 hot-fix 分支指向该提交版本。

8.10.3、在master分支新增内容

image

如上图所示,切换到 master 分支中,新增了一行内容;经过修改内容后,文件颜色会变成蓝色。

8.10.4、提交master分支的新增内容

image

image

如上图所示,又多了一个提交版本,且 master 分支指向该提交版本。

注意:此时 hot-fix 分支和 master 分支分别对同一行做出了不同的修改。

8.10.5、合并hot-fix分支到当前分支

image

如上图所示,点击 IDEA 右下角当前 Git 分支名称,选择要合并的分支名称(本例为 hot-fix ),然后点击“Merge into Current”,即可将 hot-fix 分支合并到当前分支(本例为 master )。

image

如上图所示,因为 hot-fix 分支和 master 分支分别对同一行做出了不同的修改,合并分支时,IDEA 不知道选择使用哪个分支的修改是正确的。

因此,需要手动处理 hot-fix 分支和 master 分支,存在冲突的内容。

8.10.6、解决合并冲突

image

如上图所示,在手动合并的弹窗中,左侧是 master 分支的内容,右侧是 hot-fix 分支的内容,中间是手动合并结果的内容。

左右两侧还有操作按钮:“X”、“>>”和“<<”;“X”表示不将这行冲突内容合并到结果内容中,“>>”和“<<”表示将这行冲突内容合并到结果内容中。

image

如上图所示,先后点击了“>>”和“<<”操作按钮,两个分支的冲突内容也按顺序地合并到结果内容中了。

此外,还出现了一个提示,表示冲突内容已被处理,可以完成合并;这时点击“Apply”按钮即可完成手动合并冲突的操作。

image

如上图所示,合并冲突已解决,且自动提交到了本地库。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

时间序列分析专题——指数平滑模型

指数平滑法模型,分为季节性模型和非季节性模型。季节性模型只有在为活动数据集定义了周期时才可用。 本章只理论性地介绍这六种指数平滑法模型,让学习者在论文的应用中有话可写。 在具体实现中,SPSS会自动识别并给定一种最好的模型。 目录一、简单指数平滑法1.模型介绍2.关于…

Blazor 逐键搜索并动态反馈到url

Blazor 逐键搜索并动态反馈到url 源码 前言: 今天打开了 spotify 网页版找歌, 突然发现这个功能很抓眼球,于是试试blazor能不能模仿一下.1. 节省时间,直接用模板开搞 新建项目,使用bb模板, 命名为 b22dynamicURL2. 运行一次,看看效果 显示如下模板站点,就说明你前面的操作都对了…

集团数字化建设总体规划

1、数字生态体系建设规划 体系规划整体思路 从战略出发,描绘企业愿景蓝图,结合领先实践,设计方案与实施路线 通过体系规划和建设,助力业务发展,支撑战略落地 数字化助力上下贯通的高效管理与横向协同的业务经营 建设后援集中平台,实现高效高质集中作业、交叉销售,产生规…

氛围共处(Ambient Co-presence)丨RTE 共读计划

在同一个网络空间和情境下,营造一种微妙的、隐约感知的、实时同步的感觉。 加入「RTE 共读计划」: 重要的技术,往往是那些不易察觉却无所不在的技术。欢迎阅读「RTE 共读计划」的文章,我们希望通过本计划:• 挖掘到那些帮助人们跨越距离实时互动(Real-Time Engagement,R…

【已解决】pip已经安装好了模块,运行代码还是报错说没安装

在 Python 开发中,有时用 pip 安装了模块,运行代码时却提示没安装,这让人很困惑。下面来看看可能的原因和解决办法可能原因:1. 虚拟环境出错:如果用了虚拟环境,可能装错了地方,运行代码时用的环境没装这个模块。2. Python 版本不同:安装模块和运行代码的 Python 版本不…

# Day01

愿你自由如夏天的风,去实现所有开出花来的梦 Ctrl+C复制 Ctri+V粘贴 Crtl+A全选 Crtl+X剪切 Crtl+Z撤销 Crtl+S保存 …

关于平衡树(施工中)

关于Splay$\LARGE {一些无聊的定义}$ 二叉搜索树(BST树) 定义 二叉搜索树是一种二叉树的树形数据结构,其定义如下:空树是二叉搜索树。若二叉搜索树的左子树不为空,则其左子树上所有点的附加权值均小于其根节点的值。若二叉搜索树的右子树不为空,则其右子树上所有点的附加权…

Linux 提权-SUID/SGID_1

本文通过 Google 翻译 SUID | SGID Part-1 – Linux Privilege Escalation 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充。导航0 前言 1 了解特殊权限 2 寻找 SUID/SGID 二进制文件 – 手动方法2.1 枚举 SUID 二进制文件 2.2 枚举 SGID 二…

Java解析并修改JSON:将isShow属性改为false

哈喽,大家好,我是木头左!在Java中,可以使用各种库来处理JSON数据。其中,Jackson和Gson是两个非常流行且功能强大的库。在这篇文章中,将使用Jackson库来解析给定的JSON字符串,将其转换为Map对象,然后修改其中的"isShow"属性,最后再将其转回JSON字符串。 准备…

#cmd的常用命令(Dos)

cmd的常用命令首先win+r输入cmd并回车进入cmd命令中cd 命令:进入指定目录cd d:进入d盘目录.会发现进入不了d盘,因为cd只能在当前目录下操作不能跨区操作. 键入d:回车进入d盘.我d盘下有aaa文件夹cd aaa进入文件夹aaa目录下提示 ".."为上一级目录."."为当前…

StarRocks数据导入慢问题解决

一、问题描述依据StarRocks官网快速开始安装教程,用docker compose安装了starrocks,log模块从rabbitMq的队列批量获取log消息,发现队列消息有堆积,一晚上下来大概能对接4000条消息。经单元测试发现insert into到starrocks中时间竟然相差几百倍。 mysql每条insert sql执行3.…