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一些面试前准备和技术参考题,希望对你有所帮助

    以下真实模拟JAVA面试场景: 感谢您参加我们的面试: 以下是我们总结一些面试前准备和技术参考题,希望对你有所帮助. 首先,你需要先准备下工作相关的自我介绍,包括以下内容: 几年 Java 开发经验, ...

  2. C#的Winform程序关于单击和双击的区别 - 开源研究系列文章

    前些天编码的时候有个关于应用程序的托盘图标的鼠标Mouse Down里的单击和双击的问题,只是想单击的时候显示主窗体,双击的时候显示操作窗体.但是编码并调试的时候发现Windows的鼠标双击的事件先执 ...

  3. 在vmware里安装ubuntu的简单过程(具体的见网址)

    在官网选择vmware版本为16,安装后,在vmware里升级到最新版.(这个可以解决蓝屏) 在下面的这个文章里下载ubuntu的镜像文件iso,我下载的是16年的,内存为1.6GB,下载的时间用的少 ...

  4. 一: Mysql字符集问题

    ## Mysql 字符集问题 1 修改MySQL5.7字符集 1.1 修改步骤 在MySQL 8.0版本之前,默认字符集为 latin1 ,utf8字符集指向的是 utf8mb3 .网站开发人员在数据 ...

  5. Java 多线程------例子(2) --创建 三个窗口 买票 总票数为 100张 使用实现Runnabel接口的方式

    1 package com.bytezero.threadexer; 2 3 /** 4 * 创建 三个窗口 买票 总票数为 100张 使用实现Runnabel接口的方式 5 * 6 * @autho ...

  6. 线上RocktMQ重复投递半事务消息故障排查

    1. 故障现象 2020-11-18 10:40开始,业务线反馈线上收到大量的重复MQ半事务消息,导致容器资源消耗急剧攀升,经查看MQ日志,发现broker-b的Master服务,报出大量半事务消息回 ...

  7. k8s资源管理中request和limit的区别

    在 Kubernetes(K8s)中,request和limit是两个重要的概念,用于控制和管理容器的资源使用. Request(请求): request定义了容器启动时需要保证的最小资源量.这表示K ...

  8. github拉项目显示timeOut

    参考:https://blog.csdn.net/qq_37424778/article/details/132018804 自己尝试在github上拉项目,但是报错LibreSSL SSL_read ...

  9. 单点登录之CAS简单介绍

    cas官网http://www.ja-sig.org/products/cas/. ok,现在开始本文的重点内容讲解,先来了解一下cas 实现single sign out的原理,如图所示:      ...

  10. Harris/Shi-Tomasi角点检测

    机器视觉--角点检测 什么是角点检测 在几何学里,我们会看到各种各样的三角形.多边形等,它们都有一个显著的特征:包含了角点信息.比如在三角形里,我们有三个角:在矩形里,我们有四个角.我们将找到这些图像 ...