IDEA 是目前最流行的 Java 集成开发环境,我们一般使用 Git 都是在 IDEA 上操作。

这里以 2021.3.2 版 IDEA 为例。

克隆项目

1、复制 Gitee 上的项目地址

2、点击 Clone…

3、输入复制的地址,选好存放项目的路径,点击 Clone

这样就将 Gitee 上的项目克隆到了本地并用 IDEA打开了。

修改内容

点击如图所示的位置可以查看文件的变更情况:

默认有两个分组:已修改文件未提交版本控制文件

如果有部分文件是不想提交的,可以自建分组。虽然修改 .gitignore 也可以实现效果,但这需要 git pull 后才生效,而且如果提交了 .gitignore 文件可能影响到协作开发的其他人员,有一定风险。

自建分组很简单,只需进行如下图操作:

这样就将文件转移到了自定义分组。IDEA 进行提交时默认读取的是 Changes 下面的内容,所以不会提交自建分组的内容。

查看日志

如下图操作可以查看 Git 的相关日志记录:

文件操作

快捷按钮

IDEA 提供了一些 Git 的快捷操作按钮

从左至右分别是:拉取提交推送比较历史重置。这些都是很常用的功能,用按钮操作非常方便。

更新

使用拉取按钮可以同步远程仓库所有分支的最新代码到本地仓库,建议在进行下面操作前先进行此操作

保持代码最新可以用到最新的代码,避免重复劳动;在最新的基础上修改不容易与其他代码冲突;提交最新的代码也不会覆盖别人的代码

添加

添加至版本控制,此时未添加的文件为红色

添加版本控制的文件变为绿色

提交

提交文件到本地仓库。

注释内容一定要填写,并尽量准确描述更改的内容,方便后续查看。

提交后文件变为白色

提交的内容可以在日志中查看。

推送

提交文件后,文件进入了本地仓库,还需要推送才能进入远程仓库。

推送成功后,可以在日志查看推送记录。

Gitee 上看到了提交的文件,推送成功。

比较

点击比较按钮,会弹出文件比较框,如果文件相对于本地仓库里最新的版本有修改,则会出现如下内容:

左侧是本地仓库中最新的文件内容,右侧是修改后的内容,有非常明显的标识标注出修改了的内容,可以进行比较,如果需要以左侧覆盖右侧,点击图中的 >> 图标即可。

历史

点击历史按钮,会在下面出现该文件的提交历史记录:

可以选中一条记录点击右键选择 Compare with Local 与当前的文件进行比较:

如果是选中的最新一条,比较结果与上面的比较操作完全一样:

重置

点击重置按钮,可以重置当前文件的修改,恢复到本地仓库最新提交的代码:

重置操作需要谨慎,确认勾选的文件都是想重置的文件,避免重置了不想重置的文件。虽然也可以通过 Git 记录找到重置了哪些文件,再通过本地文件记录找回,但一旦文件数量比较多,这个操作是相当繁琐的!

分支操作

切换

选择要切换到的分支,再选择 Checkout 即可。

切换完成后,会发现右下角的分支处变为了切换到的分支,左下角也会出现相应提示,代表切换成功。

切换分支时,请先确保当前分支的代码都提交了,如果没有提交,切换时会出现如下提示:

此时建议选择 Smart Checkout,而如果它不能自动解决,就需要手动合并冲突了,合并后对自己还没有提交的代码是有影响的,甚至会直接删除,重置后 Git 会出现 shelf 栏,在其中可以找到被删除的代码进行恢复:

这样是很冒险的,非常容易造成代码混乱,所以建议切换分支前先提交代码到本地仓库

合并

这里以合并 dev 分支到 master 分支为例。

由于是合并到主分支,需要非常慎重。建议先由 master 合并到 dev,如果出现冲突及时解决,此时只会影响 dev 分支的代码,可以运行测试,确认 dev 的代码没有问题了,再合并到 master 分支,这样一般都不会存在冲突了,可以最大程度的避免因为代码合并对主分支造成的不良影响。

1、切换到待合并分支。这里是要合并代码到 master,所以选择 master:

2、选择来源分支。这里是从 dev 合并,所以选择 dev:

3、合并后代码提交到了本地仓库的当前分支,还需要推送到远程仓库。点击推送按钮

查看日志,发现这里有两个分支的推送记录,说明合并推送成功。

如果两个分支的内容存在冲突,则会出现如下提示:

此时强烈建议选择 Merge。除非特别确定,最好不要单方面的选择接受自己的或者接受别人的,而是选择 Merge 查看冲突再选择性合并代码。

合并时如果有很容易解决的冲突,上图中指向的图标会亮起,此时可以点击来解决简单的冲突,剩余的冲突再手动解决,可以大大减少合并的工作量和出错的可能性。

合并后建议运行代码测试,确认没有因为合并对代码造成影响。

查看具体代码提交记录

在协同开发中,遇到不确定的代码段,经常会需要查看这段代码的提交记录以方便找到具体的人员沟通,此时可以在代码左侧点击鼠标右键,选择 Annotate with Git Blame ,即可清晰的看到这段代码的具体提交记录。

记录中标示了提交时间提交人,其中带 * 的为最新的提交记录。

点击具体的记录还可以查看对应的日志。


版本

Git:2.35.1.2

IDEA:2021.3.3

Git 07 IDEA基本使用的更多相关文章

  1. [Git]07 如何在提交过程中忽略某些文件

     一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表.通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等.我们可以创建一个名为 .gitignor ...

  2. Git - 07. gitignore

    1. 概述 开发的过程中, 无法保证项目文件夹下的所有东西, 都是想传到版本库的 比如 maven 项目的 target 目录 配置好之后, 使用 git add .命令, 这些文件\目录也不会被 s ...

  3. Git 07 IDEA集成Git

    参考源 https://www.bilibili.com/video/BV1FE411P7B3?spm_id_from=333.999.0.0 版本 本文章基于 Git 2.35.1.2 IDEA 是 ...

  4. 07.GitHub实战系列~7.Git之VS2013团队开发(如果不想了解git命令直接学这篇即可)

    GitHub实战系列汇总:http://www.cnblogs.com/dunitian/p/5038719.html ———————————————————————————————————————— ...

  5. git遇到的问题记录2019.05.07

    用sourcetree拉取代码,报错如下: error: cannot lock ref 'refs/remotes/origin/my_branch': unable to resolve refe ...

  6. 第07组 团队Git现场编程实战

    组员职责分工 团队成员 分工 杨明哲 爬数据,做网页 林兴源 合作编码完成了对美团数据的分析,分析出最有发展潜力的十佳好店 卞永亨 从大众点评分析出了服装商圈 林鑫 合作编码完成了对美团数据的分析,分 ...

  7. Git 分支管理和冲突解决

    Git 分支管理和冲突解决 创建分支 git branch 没有参数,显示本地版本库中所有的本地分支名称. 当前检出分支的前面会有星号. git branch newname 在当前检出分支上新建分支 ...

  8. git常用的命令集合

    Git 是一个很强大的分布式版本控制系统.它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势. Git常用操作命令: 1) 远程仓库相关命令 检出仓库:$ git clone g ...

  9. ***Linux下使用git命令及github项目

    在linux下搭建git环境1.创建Github账号,https://github.com2.Linux创建SSH密钥: ssh-keygen  ##一直默认就可以了 3.将公钥加入到Github账户 ...

  10. Git中pull对比fetch和merge

    本文参考于:http://www.zhanglian2010.cn/2014/07/git-pull-vs-fetch-and-merge/ 使用git fetch和git pull都可以更新远程仓库 ...

随机推荐

  1. 详解SSL证书系列(3)如何选择SSL证书

    我们知道了在网站部署 SSL 证书后,不管是对网站本身还是对网站的用户都能够带来许多好处.那么随着 HTTPS的普及,市面上也出现了各种不同的 SSL 证书.并且由于 SSL 证书的多样性,很多人对于 ...

  2. 第一百一十篇:内存泄漏和垃圾回收(JS)

    好家伙,本篇内容为<JS高级程序设计>第四章的学习笔记 1.内存泄露 1.1.什么是内存泄漏? 内存泄漏(Memory Leak)是指程序中已动态分配的堆内存由于某种原因程序未释放或无法释 ...

  3. 使用OpenFeign远程调用时请求头处理报错问题

    1. 错误信息 basic.result.exception.OtherException: feign error:系统异常:Content type 'multipart/form-data;bo ...

  4. Java 线程通信的应用:经典例题:生产者/消费者问题

    1 package bytezero.threadcommunication; 2 3 /** 4 * 线程通信的应用:经典例题:生产者/消费者问题 5 * 6 * 7 * 8 * @author B ...

  5. C#拾遗补漏之goto跳转语句

    前言 在我们日常工作中常用的C#跳转语句有break.continue.return,但是还有一个C#跳转语句很多同学可能都比较的陌生就是goto,今天大姚带大家一起来认识一下goto语句及其它的优缺 ...

  6. MVC阶段所有框架完整组合示例

    思路:创建工程,导包.编辑配置文件包括 核心spring配置   SpringConfig myBatis 配置文件  mybatisConfig  JdbcConfig  jdbc.properti ...

  7. 真实开发中-redis在项目中的应用场景

    一.需求描述 从自己当前负责参与开发的一个项目中来看,redis主要的应用场景有如下几个,第一个是保存用户信息,这个需要频繁的获取.比如 在打开某一个页面进行查询时,就先需要获取用户信息,看用户是否具 ...

  8. class cl表示 汇聚 集合 ss表示 阴性 这里表示抽象

    class cl表示 汇聚 集合 ss表示 阴性 这里表示抽象

  9. Linux 使用 selenium 环境配置

    1.需要安装 Chrome 浏览器 yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64 ...

  10. 引领文旅新体验!3DCAT实时云渲染助力打造“永不落幕”的湾区文采会元宇宙

    2022年11月25日至27日,2022年粤港澳大湾区公共文化和旅游产品(东莞)采购会(简称"湾区文采会")在广东省东莞市文化馆举行. 文采会期间,文采会元宇宙线上虚拟展厅全新亮相 ...