gh)对接 GitHub:登录沿用 gh 的登录状态,API 调用都走 gh api。OpenIDEA 自己没有账户管理和令牌输入框,也不保存任何凭据。
准备工作
1
安装 gh
安装 GitHub CLI。OpenIDEA 依次在
OPENIDEA_GH(完整路径)、PATH,以及
/opt/homebrew/bin、/usr/local/bin、/usr/bin、/snap/bin(macOS/Linux)或 C:\Program Files\GitHub CLI\gh.exe(Windows)中查找。2
登录
在终端运行
gh auth login。未登录时打开 拉取请求 工具窗口,会显示 未登录 GitHub 和 运行 gh auth login
按钮,点击后在内置终端中执行该命令。完成后点 重试。3
打开带 GitHub 远程的项目
项目需要有一个指向
github.com 的 Git 远程。只有一个 GitHub 远程时自动连接;有多个时,工具窗口会让你选择
仓库,选择按项目记住。之后要切换,可在工具窗口的 ⋮ 菜单中选 更改仓库或账户…。只支持
github.com,不支持 GitHub Enterprise、GitLab 和 Bitbucket。菜单与快捷键
Git › GitHub 菜单(编辑器右键菜单的 Git 下也有)包含:- 查看拉取请求:打开拉取请求工具窗口。
- 创建拉取请求…
- 签出拉取请求…:签出选中的拉取请求,未选中时会询问编号。
- 在 GitHub 上打开:在浏览器中打开选中的拉取请求,或者仓库主页。
浏览拉取请求
拉取请求 工具窗口位于左侧。第一个标签页列出仓库的拉取请求,每打开一个拉取请求就多一个#N 标签页。
- 搜索:输入文本或 GitHub 搜索限定符后按
Enter。历史按钮(或⌥↓/Alt+Down)显示最近 10 次搜索。 - 快速筛选(漏斗按钮):打开、您的拉取请求、指派给您、审查请求。
- 筛选条件:状态、作者、标签、被指派者、审查、排序。在条件上按
Delete或Backspace可以重置。 - 每一行显示未读标记、标签、状态、合并冲突、被指派者和审阅者头像,以及未解决评论数。
拉取请求详情
双击拉取请求(或按Enter)打开详情标签页:
- 标题、状态,以及 查看时间线 链接。
- 提交选择器:可以一起看所有提交,也可以逐个提交查看。
- 源分支,提供 签出、在工作树中打开、在 Git 日志中显示、复制分支名称。
- 变更文件列表。双击文件打开差异。可以用 标记为已查看 / 标记为未查看(或“所有提交”视图中的复选框)标记文件。
- 状态区:检查运行情况(详细信息… 列出每个作业,点击在 GitHub 上打开)、合并冲突(解决 链接会签出分支并在本地把基础分支合并进来)、必需的审查以及各审阅者状态。
合并按钮只提供仓库允许的方式:合并…、压缩并合并…(这两种可以编辑提交消息)和 变基。
审查代码
在差异视图中评论
拉取请求的差异是合并基础与头提交之间的比较。如果本地缺少拉取请求的引用或基础分支,OpenIDEA 会先获取。- 鼠标悬停在某行上,点击边栏的 + 添加评论;拖动可以选中多行。
- 选择 开始审查(评论先挂起,提交审查时一起发出)或 添加单条评论。OpenIDEA 会记住你上次的选择。
- 已有的讨论直接显示在对应行下方。在差异设置的 显示审查讨论 中选择 全部、仅未解决(默认)或 不显示。
- 差异工具栏有 刷新审查数据、提交审查…、上一条评论、下一条评论。过了最后一处变更后,按
F7会跳到拉取请求的下一个文件。
提交审查
提交审查… 会弹出一个小窗口。可以写一段总结,然后选择 批准、请求更改 或 评论。垃圾桶按钮会丢弃所有挂起的评论。作者不能批准自己的拉取请求,也不能对其请求更改。时间线
查看时间线 在编辑器标签页中打开拉取请求的对话:描述、提交、审查、审查讨论和各种事件,最新的在底部。在这里可以:- 发表评论(
⌘Enter/Ctrl+Enter发送),支持@提及补全。 - 编辑或删除自己的评论,添加表情回应。
- 回复审查讨论,并 解决 或取消解决。
- 用 在本地应用 应用建议的更改,或者用 提交… 一步应用并提交。只有签出了拉取请求的分支时才能应用建议。
- 拉取请求合并后,可以在横幅中删除头分支。
审查模式
当签出的分支正是某个打开的拉取请求的头分支时,分支微件会显示#N on 分支名,审查模式随之开启:
- 审查讨论直接显示在普通编辑器中,边栏的 + 可以添加评论,变更标记以拉取请求的基础为准。
- 编辑器角落的工具栏有 上一条评论、下一条评论 和 审查模式 菜单(禁用审查模式、仅显示未解决的评论、显示所有评论)。
- 编辑器右键菜单中多出 显示审查差异。
- 本地分支落后于远程时,分支微件会提供 更新以启用审查模式…。
创建拉取请求
创建拉取请求… 会打开一个新建拉取请求的标签页(标题形如“在 owner/repo 新建拉取请求”):- 选择 基础分支 和 头分支(本地或远程分支;有 fork 时还可以选择仓库)。
- 检查提交和变更文件。
- 填写标题和描述。标题默认取唯一提交的主题行或分支名;描述会预先填入仓库的拉取请求模板。
- 可选:设置 审阅者:、受理人:、标签:。
- 点击 创建拉取请求,或通过旁边的箭头选择 创建草稿拉取请求。
签出拉取请求
- 签出分支(或 签出拉取请求…)执行
gh pr checkout,来自 fork 的拉取请求也能签出。 - 在工作树中打开 会在仓库旁边新建一个 Git 工作树(名为
<repo>_PR_<n>),签出拉取请求的头提交,并在新窗口中打开。
从 GitHub 克隆
Git › 克隆… 打开 克隆仓库 对话框。在侧栏选择 GitHub,会列出你拥有、参与协作或通过组织可以访问的仓库,按最近推送时间排序。用 搜索仓库 过滤,双击仓库(或按Enter)即可克隆。URL 默认用 HTTPS;如果 gh 对 github.com 配置的 git_protocol 是 ssh,则用 SSH。
Git 日志中的提交检查
Git 日志可以显示每个提交在 GitHub 上的检查状态。在日志的 视图选项 › 列 中,或在 设置 › 版本控制 › 日志 中打开 GitHub 提交检查 列。点击提交的图标列出它的检查运行,再点击某项即可在 GitHub 上打开。暂不支持
- GitHub Enterprise、GitLab、Bitbucket。
- Issue、Gist、通知,以及创建或分享仓库。
- 在 GitHub 上打开文件或某一行、复制永久链接。
- 管理 GitHub Actions(重新运行作业、查看日志)。