1. 简介

IntelliJ IDEAGit 版本控制系统 提供了强大的集成支持。本文将介绍 IDE 中最实用的 Git 功能。

由于 IntelliJ 持续更新,我们不会深入每个细节,而是聚焦核心功能。本文截图基于 IntelliJ IDEA 2023.3.6 暗色主题,并使用 Baeldung 的 GitHub 仓库 作为示例。

2. Git 配置

在 IntelliJ 中使用 Git 前,需先在系统安装 Git,并在 IDE 设置中配置路径:

IntelliJ 中的 Git 设置

此设置告诉 IntelliJ 使用系统安装的 Git 可执行文件。

3. 项目配置

在 IntelliJ 项目中使用 Git 有三种方式:

  1. 从远程仓库克隆新项目
  2. 导入已配置 Git 的本地源文件夹
  3. 为现有项目添加 Git 支持

下面详细说明这三种方式。

3.1 克隆现有仓库

通过 File -> New -> Project from Version Control 克隆远程仓库,粘贴仓库 URL 并指定本地目录:

克隆远程仓库

IntelliJ 底层会执行 git clone 命令并在 IDE 中打开项目。

3.2 打开现有项目

通过 File -> New -> Project from Existing Sources 打开包含项目的本地文件夹:

从现有源创建项目

若存在 .git 目录,IntelliJ 会自动启用 Git 功能。

3.3 创建新 Git 仓库

为未使用 Git 的项目启用版本控制:点击顶部菜单栏的 VCS -> Enable Version Control Integration

启用版本控制集成

选择 Git 作为版本控制系统:

选择 Git 版本控制

IntelliJ 会执行 git init 并在项目根目录创建 .git 文件夹。

3.4 IDE 中的 Git 操作

配置 Git 集成后,IDE 中提供以下操作入口:

IntelliJ 中的 Git 菜单和工具栏

✅ 顶部菜单栏的 Git 菜单项
✅ 顶部工具栏的当前分支显示
✅ 左侧工具栏的提交和拉取请求按钮

后续章节将详解这些操作。

4. 创建新分支

通过工具栏的分支下拉按钮创建新分支,该下拉菜单同时显示所有本地和远程分支:

创建新分支

5. 提交更改

提交工具窗口会列出当前分支所有修改的文件:

提交更改

点击修改的文件可查看差异:

显示文件差异

提交时可通过复选框选择全部或部分文件。

6. 冲突解决

IntelliJ 在合并或变基时提供强大的冲突解决支持:

冲突解决界面

对于每个冲突文件,可打开解决对话框:

  • 左侧:本地文件
  • 右侧:待合并分支的文件
  • 中间:合并结果

⚠️ 可手动接受左侧或右侧的更改。IDE 还提供魔法棒图标按钮,点击后 IntelliJ 会自动解决可处理的冲突

自动解决冲突

7. Git 历史记录

开发者常通过 Git 历史记录追踪文件变更。IntelliJ 提供三种便捷功能:Git Blame、文件历史和提交历史。

7.1 Git Blame

Git Blame 可显示每行代码的最后修改者。右键单击文件或行号区域,选择 Annotate with Git Blame

启用 Git Blame

IntelliJ 会在每行旁显示最后修改日期和用户名:

Git Blame 显示效果

空白行表示未提交的修改。因此 Git Blame 也是查看当前文件修改的便捷方式

7.2 Git 文件历史

右键单击编辑器或项目窗口中的文件,可查看完整 Git 历史记录(假设未被重写或删除):

查看文件历史

IntelliJ 会显示包含该文件的所有提交列表,可打开任意版本、查看差异或检出特定版本。

7.3 Git 提交历史

右键单击项目窗口的根目录,选择 Show History,可查看整个项目的提交历史:

查看提交历史

8. 多模块项目

IntelliJ 对多模块项目提供出色支持。通过将多个项目导入同一 IntelliJ 窗口创建多模块项目:

多模块项目设置

每个模块可关联不同的 Git 仓库。通过主菜单 Git -> Manage Remotes 查看远程仓库:

多模块远程仓库管理

更重要的是,每个模块可独立使用不同分支

多模块分支管理

上例包含两个模块:Baeldung 教程项目和 Baeldung Kotlin 教程项目,它们关联不同远程仓库,且当前均处于 master 分支。

9. 拉取请求

IntelliJ 提供便捷的拉取请求(Pull Request)审查功能。点击左侧工具栏的 PR 图标可查看仓库的所有拉取请求:

显示拉取请求列表

可查看特定 PR 包含的文件列表,并直接在 IDE 中添加评论:

评论拉取请求

此外,可像普通分支一样检出 PR。

10. 总结

IntelliJ 提供强大的 Git 集成和直观界面,覆盖最常用的 Git 功能。

本文介绍了如何配置 IntelliJ 与 Git 协作、创建仓库和分支、提交更改、解决合并冲突,以及查看 Git 历史、审查拉取请求和处理多模块项目。

更多细节请参考 IntelliJ 官方文档


原始标题:Git Integration in IntelliJ IDEA | Baeldung