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. 【Java复健指南07】OOP中级02-重写与多态思想

    前情提要:https://www.cnblogs.com/DAYceng/category/2227185.html 重写 注意事项和使用细节 方法重写也叫方法覆法,需要满足下面的条件 1.子类的方法 ...

  2. 【LeetCode字符串#01】反转字符串I+II

    反转字符串 力扣题目链接(opens new window) 编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 char[] 的形式给出. 不要给另外的数组分配额外的空间,你必须原地 ...

  3. Glide源码解析三(注册组件)

    转载请标明出处,维权必究: https://www.cnblogs.com/tangZH/p/12900387.html Glide源码解析一,初始化 Glide源码解析二-into方法 Glide源 ...

  4. C语言之牛必克拉斯 main() 函数

    C语言之main()函数 C程序最大的特点就是所有的程序都是用函数来装配的.main()称之为主函数,是所有程序运行的入口.其余函数分为有参或无参两种,均由main()函数或其它一般函数调用,若调用的 ...

  5. 基于 Mindspore 框架与 ModelArts 平台的 MNIST 手写体识别实验

    简介 实验包含 2部分: 基于 Mindspore 框架的模型本地训练及预测 基于 Modelarts 平台和 PyTorch框架的模型训练及部署 基于 Mindspore 框架的模型本地训练及预测 ...

  6. canvas-screenshot 视频截屏功能,选择视频的一个区域,进行截图

    预览地址:http://pengchenggang.gitee.io/canvas-screenshot/ 参考资料:https://www.canvasapi.cn/ <!DOCTYPE ht ...

  7. js使用typeof与instanceof相结合编写一个判断常见变量类型的函数

    /** * 常见类型判断 * @param {any} param */ function getParamType(param) { // 先判断是否能用typeof 直接判断 let types1 ...

  8. 【个人笔记】Nestjs使用TypeORM注意点

    在Nestjs使用TypeORM还是有一些注意点. entities路径配置注意点 在nestjs中使用TypeORM,需要配置数据库连接(以MySQL为例).需要特别注意的是配置参数里面的entit ...

  9. vue项目本地开发完成后部署到服务器后报404是什么原因呢?

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.如何部署 前后端分离开发模式下,前后端是独立布署的,前端只需要将最后的构建物上传至目标服务器的web容器指定的静态目录下即可 我们知道 ...

  10. 记录--前端项目中运行 npm run xxx 的时候发生了什么?

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 npm 是 node 捆绑的依赖管理器,常用程度可想而知.那么你每天都在 npm/yarn run 的命令到底是如何运行项目的呢? 前端项 ...