导航
- 查看本地未提交的修改记录
- 方式1: git 命令查看
- 方式2: idea 可视化查看
- 查看已经已经commit的变更记录
- 方式1: git 命令查看
- 方式2: idea 可视化查看
- 结语
- 参考
用惯了宇宙最强大ide——Visual Studio,再使用别的开发工具总是感觉没有那么人性化。
在做Java开发的时候,我们团队使用的是IntelliJ IDEA 2021版,Download IntelliJ IDEA。
在团队中,大家相互协作做项目的时候,通常的大家都会使用Git进行代码管理,会不断的涉及到代码提交、合并、冲突解决等操作。
有时候在代码提交之前,总想看看自己修改了哪些文件以及文件内容。
或者在每次发版之后发现了一些bug,会做CodeReview,查看已经commit的代码。

查看方式其实还是比较多的,有些是可视化操作,有些是git命令执行。
Note: 需要在开发机器上先安装
IntelliJ IDEA 2021
,git
。Git下载,[Download IntelliJ IDEA下载
查看本地未提交的修改记录
方式1: git 命令查看
git status

可以看到,我们有两个文件修改了,workspace.xml
和application.properties
,但是尚未commit。
如果要进一步查看,文件改动了哪些内容呢?
git diff
有两个主要的应用场景。
- 尚未缓存的改动:git diff
- 查看已缓存的改动: git diff --cached
- 查看已缓存的与未缓存的所有改动:git diff HEAD
- 显示摘要而非整个 diff:git diff --stat
我看一下application.properties
的变更,
git diff blog-webapp/src/main/resources/application.properties

diff
的命令输出格式注意:
- ---代表源文件
- +++代表目标文件
通常working area(工作区)的文件都是被当作目标文件来看待。
输出结果中如何查差异呢?
-
-开头的行,是只出现在源文件中的行
-
+开头的行,是只出现在目标文件中的行
-
空格开头的行,是源文件和目标文件中都出现的行
差异按照差异小结进行组织,每个差异小结的第一行都是定位语句,由@@开头,@@结尾。
比如,图中输出结果的差异小结@@ -1,3 +1,4 @@
@@ -1,3 +1,4 @@
+# 应用端口
server.port=7070
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
上面的diff结果表明
- 在源文件第1行开始的3行和目标文件第1行开始的4行构成一个差异小结
- 这个差异小结中,目标文件添加了一行"# 应用端口"
- 其他空格开头的行表明没有差异。
但是,如果一个文件的变动地方太多,通过这种方式看起来好像不太直观,有没有更加可视化的方式呢?
Idea编辑器提供了这样的能力。
方式2: idea 可视化查看
在Idea的顶部菜单栏上选择Git->Commit

或者选择view->ToolWindows->Commit或者左侧菜单的Commit展开

然后,我们就可以看到变更的文件了

选择其中一个文件,就可以看看文件的对比差异,

差异一目了然。
查看已经已经commit的变更记录
设想这样一个场景,我们发版之后,过了一会儿,有人反馈生产环境出现了Bug。于是,你赶紧回退了代码到上一版本,生产环境恢复了正常。
接下来,你需要排查bug。大概率,你会根据打开代码,核查一下这个版本的提交记录。
方式1: git 命令查看
git log
: 在使用 Git 提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,我们可以使用 git log 命令查看。
git log

我们可以用 --oneline 选项来查看历史记录的简洁的版本
lenovo@lenovo-PC MINGW64 /e/JavaProjects/github/superblog (main)
$ git log --oneline
eea489c (HEAD -> main, origin/main, origin/HEAD) fix: change db config
facb52b feat: 添加数据库sql
69fd570 initial
c65279f Initial commit
我们还可以用 --graph 选项,查看历史中什么时候出现了分支、合并。以下为相同的命令,开启了拓扑图选项:
$ git log --graph
* commit eea489c5af1285d3c7c737a3bbef2f4baf559af9 (HEAD -> main, origin/main, origin/HEAD)
| Author: HuYiDaoKing <490822462@qq.com>
| Date: Sun Feb 6 22:55:45 2022 +0800
|
| fix: change db config
|
* commit facb52bb752477a5620cccff6d80d9306db94023
| Author: HuYiDaoKing <490822462@qq.com>
| Date: Wed Jan 19 23:21:44 2022 +0800
|
| feat: ?????sql
|
* commit 69fd570d5a85515ef62cc100eb2d91bb781ea768
| Author: HuYiDaoKing <490822462@qq.com>
| Date: Tue Jan 18 23:12:39 2022 +0800
|
| initial
|
* commit c65279fa575fba0dad50f78dfc7cbdbe9bf32b36
Author: zhikecore-team <490822462@qq.com>
Date: Sun Jan 16 18:48:15 2022 +0800
Initial commit
从上面我们可以看到,总共有四次提交记录。
如果只想查看某一次commit的变更, git show commit_id
比如,只想看eea489c5af1285d3c7c737a3bbef2f4baf559af9
这次的修改的文件
git show eea489c5af1285d3c7c737a3bbef2f4baf559af9

这种方式能够看到某次提交的变更,但是不够直观。
方式2: idea上查看
值得欣喜的是,idea上提供了可视化的查看方式。在Idea顶部菜单选择Git->Show Git log

然后,就可以看到历史提交记录

任意选中列表中的一个文件即可查看文件的变更情况。

结语
本文简单介绍了在实际项目开发中,代码管理的两个常用场景。
希望这两个技能能够对您有所帮助。