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. 【生成对抗网络学习 其二】GAN(keras实现)代码阅读笔记

    想来想去还是记录一下吧,主要是怕以后时间长忘了 好记性不如烂笔头 代码来自eriklindernoren的开源GAN实现:https://github.com/eriklindernoren/Kera ...

  2. 矩池云教程|体验 OpenAI 最近推出的 3D 生成模型 Shap-E!

    Shap-E 是由 OpenAI 最近推出的3D生成模型,使用者可以通过简单的文字或图像进行三维模型的生成,OpenAI 认为相比于点云的生成模型Point-E,Shap-E的收敛更快.本文将展示如何 ...

  3. 用ABP Suite创建Blazor Server的应用程序

    这个应用程序我们取名为BlazorOne,意思是集AuthServer.HttpApi Host和Blazor Server3个功能于一体的应用程序.因为ABP Suite支持另外一种模式,是把上述3 ...

  4. 【Azure 存储服务】Azure Storage Account Queue中因数据格式无法处理而在一个小时内不在可见的问题

    问题描述 在从Storage Account 队列中获取数据(Queue),在门户中,明显看见有数据,但是通过消费端代码去获取的时候,就是无法获取到有效数据的情况.获取消息的代码如下: 问题解答 经过 ...

  5. 面试必备:一线大厂Redis缓存设计规范与性能优化

    说在前面 你是否在使用Redis时,不清楚Redis应该遵循的设计规范而苦恼? 你是否在Redis出现性能问题时,不知道该如何优化而发愁? 你是否被面试官拷问过Redis的设计规范和性能优化而回答不出 ...

  6. STL-RBTree模拟实现

    #pragma once #include<assert.h> #include<iostream> using std::cout; using std::endl; usi ...

  7. Java package(包) +import 关键字(2)

    1 package com.bytezero.exer; 2 3 import java.lang.reflect.Field; 4 5 //import java.util.ArrayList; 6 ...

  8. 统一身份认证系统 OpenLDAP 完整部署

    0)LDAP 介绍 LDAP 是什么?在那些地方用会用到 LDAP? LDAP英文名称:Lightweight Directory Access Protocol 轻型目录访问协议. 常用在单点登录, ...

  9. springboot发送邮件的几种方式

    准备工作(以QQ邮箱为例) SMTP 协议全称为 Simple Mail Transfer Protocol,译作简单邮件传输协议,它定义了邮件客户端软件与 SMTP 服务器之间,以及 SMTP 服务 ...

  10. IDE中使用Git提交代码报错:Push to origin/release-V2 was rejected

    一.问题由来 当前项目开发好之后,已经正常稳定运行一两个月,在使用过程中基本上没在出现什么BUG.因此公司在讨论准备开发二期项目,自己 就在之前的基础之上,使用git创建了分支,一个分支release ...