Git 07 IDEA基本使用
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基本使用的更多相关文章
- [Git]07 如何在提交过程中忽略某些文件
一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表.通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等.我们可以创建一个名为 .gitignor ...
- Git - 07. gitignore
1. 概述 开发的过程中, 无法保证项目文件夹下的所有东西, 都是想传到版本库的 比如 maven 项目的 target 目录 配置好之后, 使用 git add .命令, 这些文件\目录也不会被 s ...
- Git 07 IDEA集成Git
参考源 https://www.bilibili.com/video/BV1FE411P7B3?spm_id_from=333.999.0.0 版本 本文章基于 Git 2.35.1.2 IDEA 是 ...
- 07.GitHub实战系列~7.Git之VS2013团队开发(如果不想了解git命令直接学这篇即可)
GitHub实战系列汇总:http://www.cnblogs.com/dunitian/p/5038719.html ———————————————————————————————————————— ...
- git遇到的问题记录2019.05.07
用sourcetree拉取代码,报错如下: error: cannot lock ref 'refs/remotes/origin/my_branch': unable to resolve refe ...
- 第07组 团队Git现场编程实战
组员职责分工 团队成员 分工 杨明哲 爬数据,做网页 林兴源 合作编码完成了对美团数据的分析,分析出最有发展潜力的十佳好店 卞永亨 从大众点评分析出了服装商圈 林鑫 合作编码完成了对美团数据的分析,分 ...
- Git 分支管理和冲突解决
Git 分支管理和冲突解决 创建分支 git branch 没有参数,显示本地版本库中所有的本地分支名称. 当前检出分支的前面会有星号. git branch newname 在当前检出分支上新建分支 ...
- git常用的命令集合
Git 是一个很强大的分布式版本控制系统.它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势. Git常用操作命令: 1) 远程仓库相关命令 检出仓库:$ git clone g ...
- ***Linux下使用git命令及github项目
在linux下搭建git环境1.创建Github账号,https://github.com2.Linux创建SSH密钥: ssh-keygen ##一直默认就可以了 3.将公钥加入到Github账户 ...
- Git中pull对比fetch和merge
本文参考于:http://www.zhanglian2010.cn/2014/07/git-pull-vs-fetch-and-merge/ 使用git fetch和git pull都可以更新远程仓库 ...
随机推荐
- 以下总结了Java一些面试前准备和技术参考题,希望对你有所帮助
以下真实模拟JAVA面试场景: 感谢您参加我们的面试: 以下是我们总结一些面试前准备和技术参考题,希望对你有所帮助. 首先,你需要先准备下工作相关的自我介绍,包括以下内容: 几年 Java 开发经验, ...
- C#的Winform程序关于单击和双击的区别 - 开源研究系列文章
前些天编码的时候有个关于应用程序的托盘图标的鼠标Mouse Down里的单击和双击的问题,只是想单击的时候显示主窗体,双击的时候显示操作窗体.但是编码并调试的时候发现Windows的鼠标双击的事件先执 ...
- 在vmware里安装ubuntu的简单过程(具体的见网址)
在官网选择vmware版本为16,安装后,在vmware里升级到最新版.(这个可以解决蓝屏) 在下面的这个文章里下载ubuntu的镜像文件iso,我下载的是16年的,内存为1.6GB,下载的时间用的少 ...
- 一: Mysql字符集问题
## Mysql 字符集问题 1 修改MySQL5.7字符集 1.1 修改步骤 在MySQL 8.0版本之前,默认字符集为 latin1 ,utf8字符集指向的是 utf8mb3 .网站开发人员在数据 ...
- Java 多线程------例子(2) --创建 三个窗口 买票 总票数为 100张 使用实现Runnabel接口的方式
1 package com.bytezero.threadexer; 2 3 /** 4 * 创建 三个窗口 买票 总票数为 100张 使用实现Runnabel接口的方式 5 * 6 * @autho ...
- 线上RocktMQ重复投递半事务消息故障排查
1. 故障现象 2020-11-18 10:40开始,业务线反馈线上收到大量的重复MQ半事务消息,导致容器资源消耗急剧攀升,经查看MQ日志,发现broker-b的Master服务,报出大量半事务消息回 ...
- k8s资源管理中request和limit的区别
在 Kubernetes(K8s)中,request和limit是两个重要的概念,用于控制和管理容器的资源使用. Request(请求): request定义了容器启动时需要保证的最小资源量.这表示K ...
- github拉项目显示timeOut
参考:https://blog.csdn.net/qq_37424778/article/details/132018804 自己尝试在github上拉项目,但是报错LibreSSL SSL_read ...
- 单点登录之CAS简单介绍
cas官网http://www.ja-sig.org/products/cas/. ok,现在开始本文的重点内容讲解,先来了解一下cas 实现single sign out的原理,如图所示: ...
- Harris/Shi-Tomasi角点检测
机器视觉--角点检测 什么是角点检测 在几何学里,我们会看到各种各样的三角形.多边形等,它们都有一个显著的特征:包含了角点信息.比如在三角形里,我们有三个角:在矩形里,我们有四个角.我们将找到这些图像 ...