Git学习笔记(五)IDEA使用Git

前面几篇文章中,我们已经介绍了git的基础知识,知道了其主要作用是用来进行代码的版本管理;并且已经介绍了Git操作的常用命令。在日常的开发环境下,除了通过Bash命令行来操作Git之外,我们另外一种常用的操作方式则是直接通过开发工具来进行代码的版本管理。目前主流的开发工具如eclipse、IDEA等对于Git都提供了强大的支持,这里由于我日常使用的开发工具是IDEA,因此用IDEA进行举例。

IDEA配置Git

初始配置

安装好IDEA后,如果Git安装在默认路径下,那么idea会自动找到git的位置,如果更改了Git的安 装位置则需要手动配置下Git的路径。选择File→Settings打开设置窗口,找到Version Control下的git选项:

如果在安装Git时都是选择的默认设置,这里一般会自动检测路径;如果没检测到,则手动选择Git安装目录下的git.exe文件。路径选择好后,可以点击右侧的测试按钮,如果显示了Git版本则表示配置成功了:

接下来我们需要将一个正在开发的项目交给Git管理,首先需要做的事就是构建本地仓库,然后连接远程仓库

构建本地仓库

通过Git Bash来构建本地仓库的方法我们在学习笔记(二)基本命令中介绍了,只需要在文件夹下打开Git Bash,然后执行git init命令即可,而在IDEA中打开的项目,我们可以通过简单的鼠标点击的方式来为项目构建本地仓库,具体操作方法如下图:

经过上述步骤,其实我们本地仓库就已经构建好了,让我们来看看构建完成后界面有哪些变化:

可以看到IDEA的主界面变化主要有以下三点:

  1. 多出了一个文件vcs.xml:里面是一些版本控制的初始配置
  2. 文件名变成了红色:这代表着这些文件都处于Untracked 状态(对状态不熟悉的同学去翻看Git学习笔记(一)基础概念
  3. 右上角多出了三个图标:这也是使用IDEA进行Git操作最常用的三个按钮,后面会一一介绍他们的功能。

当发现右上角出现Git图标之后,意味着我们这个项目已经被Git管理,本地仓库构建完成。

连接远程仓库

连接远程仓库之前,我们需要先构建一个远程仓库,具体步在Git学习笔记(四)远程仓库中有详细介绍,并且里面包含了如何通过Git Bash来让本地仓库与远程仓库建立连接的方法(git remote add [远程仓库名] [远程仓库地址]),这里就不过多赘述。

建立好远程仓库之后,在IDEA中进行如下配置,就可以将刚刚构建的本地仓库与远程仓库建立连接:

经过上述步骤,我们IDEA中的有关Git的相关配置就已经全部完成,接下来就可以直接在IDEA中使用Git来进行版本控制啦。

IDEA操作Git

最后,我们来讲讲IDEA中用来操作Git的几个常用按钮:

  1. 拉取按钮,表示从远程仓库拉取内容到本地仓库并合并到本地仓库的当前分支,相当于Git Bash中执行的pull命令。
  2. 提交按钮,表示将修改提交到本地仓库,相当于Git Bash中执行的add+commit命令。(注:IDEA中弱化了暂存区的存在,但实际上commit之前还是会先将修改add到暂存区)


    文件名颜色变绿,表示该文件已经提交到暂存区,但是还没有提交到仓库,处于staged状态,这时我们需要再点一次提交按钮。

    文件名变成白色,表示文件已提交,状态为commited。
  3. 推送按钮,表示将本地仓库的内容推送到远程仓库,相当于Git Bash中执行push命令。(注意:一般在点击推送按钮之前,需要先点击拉取按钮,在本地处理好分支冲突之后才能够推送到远程仓库)
  4. Git控制台,点击后可以打开Git控制台,在控制台中可以看到分支情况。
  5. 表示当前分支,对于分支的操作大部分在这里也可以进行:

    (注:这里的签出其实就是切换分支(checkout),汉化包的问题)

以上几个按钮,就是我们日常在使用IDEA进行开发的过程中经常用到的Git管理按钮,通过这些按钮,我们能够方便的对代码进行版本控制,通过可视化的方式,以及简洁明了的操作方法,极大的减轻了我们使用Git时的负担,不再需要通过命令来对Git进行操作。不过个人建议Git bash的常用命令和一些基本概念还是需要掌握(可以看我之前的文章)。最后附上文件名颜色与文件状态的对应关系:

红色,未加入版本控制,git不管理,或者存在分支冲突
绿色,已加入版本控制,暂未提交
蓝色,已加入版本控制,已提交,有改动(提交后就变回白色)
白色,已加入版本控制,已提交,无改动
灰色:已加入版本控制,忽略的文件(.ignore)

相关推荐
黑叶白树28 分钟前
简单的签到程序 python笔记
笔记·python
@小博的博客31 分钟前
C++初阶学习第十弹——深入讲解vector的迭代器失效
数据结构·c++·学习
幸运超级加倍~1 小时前
软件设计师-上午题-15 计算机网络(5分)
笔记·计算机网络
南宫生1 小时前
贪心算法习题其四【力扣】【算法学习day.21】
学习·算法·leetcode·链表·贪心算法
懒惰才能让科技进步2 小时前
从零学习大模型(十二)-----基于梯度的重要性剪枝(Gradient-based Pruning)
人工智能·深度学习·学习·算法·chatgpt·transformer·剪枝
love_and_hope2 小时前
Pytorch学习--神经网络--搭建小实战(手撕CIFAR 10 model structure)和 Sequential 的使用
人工智能·pytorch·python·深度学习·学习
Chef_Chen2 小时前
从0开始学习机器学习--Day14--如何优化神经网络的代价函数
神经网络·学习·机器学习
芊寻(嵌入式)2 小时前
C转C++学习笔记--基础知识摘录总结
开发语言·c++·笔记·学习
准橙考典3 小时前
怎么能更好的通过驾考呢?
人工智能·笔记·自动驾驶·汽车·学习方法
hong1616883 小时前
跨模态对齐与跨领域学习
学习