# 使用 /pr 命令管理拉取请求

使用/pr斜杠命令直接从Copilot CLI查看、创建和修复拉取请求。

## 概述

`/pr`斜杠命令允许你管理完整的拉取请求生命周期，而无需离开终端。 可以检查拉取请求状态、创建新的拉取请求，并解决查看反馈、合并冲突和 CI 失败等常见问题。

## 先决条件

必须在托管于GitHub的平台上的 Git 存储库中工作。

## 子命令

`/pr`斜杠命令有多个子命令，可用于对拉取请求执行不同的操作。

> \[!NOTE]
> 所有 `/pr` 子命令都与当前分支相关，例如，修正与当前分支拉取请求相关的任何失败的 CI 检查。

<!-- Use HTML tags rather than Markdown to avoid bad column width rendering. -->

<table>
<thead>
<tr>
<th style="width: 20%;">使用此子命令</th>
<th style="width: 50%;">要执行的操作</th>
<th style="width: 15%; text-align: center;">需要现有的 PR</th>
<th style="width: 15%; text-align: center;">可能提交并推送</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>/pr</code> 或 <code>/pr view</code></td>
<td>显示当前分支的拉取请求状态。 
<a href="#viewing-pull-request-status">了解详细信息</a></td>
<td align="center">是的</td>
<td align="center">否</td>
</tr>
<tr>
<td><code>/pr view web</code></td>
<td>在浏览器中打开拉取请求。 
<a href="#opening-the-pull-request-in-your-browser">了解详细信息</a></td>
<td align="center">是的</td>
<td align="center">否</td>
</tr>
<tr>
<td><code>/pr create</code></td>
<td>创建或更新拉取请求。 
<a href="#creating-a-pull-request">了解详细信息</a></td>
<td align="center">否</td>
<td align="center">是的</td>
</tr>
<tr>
<td><code>/pr fix feedback</code></td>
<td>处理拉取请求上的审阅评论。 
<a href="#fixing-review-feedback">了解详细信息</a></td>
<td align="center">是的</td>
<td align="center">是的</td>
</tr>
<tr>
<td><code>/pr fix conflicts</code></td>
<td>将分支与基分支同步并解决冲突。 
<a href="#resolving-merge-conflicts">了解详细信息</a></td>
<td align="center">是的</td>
<td align="center">是的</td>
</tr>
<tr>
<td><code>/pr fix ci</code></td>
<td>诊断并修复失败的 CI 检查。 
<a href="#fixing-ci-failures">了解详细信息</a></td>
<td align="center">是的</td>
<td align="center">是的</td>
</tr>
<tr>
<td>
<code>/pr fix</code> 或 <code>/pr fix all</code></td>
<td>按顺序运行所有三个修复阶段：反馈、冲突，然后是 CI。 
<a href="#fixing-all-issues-at-once">了解详细信息</a></td>
<td align="center">是的</td>
<td align="center">是的</td>
</tr>
<tr>
<td><code>/pr auto</code></td>
<td>如果需要，创建拉取请求，然后循环执行所有修复阶段，直到所有拉取请求检查通过。 
<a href="#automating-the-full-pull-request-workflow">了解详细信息</a></td>
<td align="center">否</td>
<td align="center">是的</td>
</tr>
</tbody>
</table>

提交和推送更改的子命令会在执行潜在的破坏性操作之前提示你提供权限，除非你预先允许这些工具。 有关详细信息，请参阅“[允许和拒绝工具使用](/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli/use-copilot-cli/allowing-tools)”。

## 查看拉取请求状态

若要检查与当前分支关联的拉取请求的状态，请在交互式会话中输入以下内容：

```copilot copy
/pr
```

### 在浏览器中打开拉取请求

如果要在 GitHub.com 而不是终端中查看拉取请求，请输入：

```copilot copy
/pr view web
```

这会在默认浏览器中打开拉取请求 URL。

## 创建拉取请求

若要从当前分支创建拉取请求，请输入：

```copilot copy
/pr create
```

Copilot 确保所有本地提交都推送到远程分支，然后创建拉取请求。 如果存储库中存在拉取请求模板， Copilot 请在生成拉取请求标题和说明时遵循该模板。

如果当前分支已经存在拉取请求，`/pr create` 会更新现有的拉取请求，而不是创建新的请求。

### 添加有关创建拉取请求过程的说明

可以在`/pr create`后面追加说明以指导Copilot。 例如：

```copilot copy
/pr create prefix the PR title 'Project X: '
```

## 修复评审反馈

要让 Copilot 读取并处理拉取请求上的审阅评论，请输入：

```copilot copy
/pr fix feedback
```

Copilot 提取拉取请求上的所有审阅评论线索，确定需要哪些更改，将更改应用到你的代码库，并提交并推送修复内容。 可操作的代码更改请求优先于会话注释。

## 解决合并冲突

若要将分支与基分支同步并解决任何合并冲突，请输入：

```copilot copy
/pr fix conflicts
```

Copilot 提取最新的基分支，同步你的分支，解决任何冲突，并推送最终结果。

### 选择合并策略

解决冲突时，Copilot CLI 需要知道是使用变基还是合并策略。 如果未配置首选项， Copilot 请在运行涉及冲突解决的命令时提示你选择。

若要设置默认合并策略，以便每次都不会提示你，请将该 `mergeStrategy` 设置添加到配置文件。 你可以在 Copilot 的个人用户设置或存储库设置中设置此内容。

* **用户设置**：添加 `"mergeStrategy": "rebase"` 或 `"mergeStrategy": "merge"` 添加到用户级配置文件（通常 `~/.copilot/settings.json`）。
* **存储库设置**：将相同的设置添加到 `.github/copilot/settings.json` 存储库根目录中。

## 修复 CI 故障

让 Copilot 诊断并修复失败的 CI 检查，请输入：

```copilot copy
/pr fix ci
```

Copilot 标识失败的 CI 作业、分析日志以确定根本原因、应用有针对性的修补程序并推送它们。 然后，它会重新检查 CI 状态，并重复该过程，直到检查通过，或者它确定无法进行进一步的进度。

如果失败与分支的更改无关，Copilot 会明确指出这一点，以便您可以采取适当的措施。

可以追加其他上下文，以帮助 Copilot 专注于特定故障。 例如：

```copilot copy
/pr fix ci focus on test failures
```

## 一次性修复所有问题

若要在单个命令中解决拉取请求上的所有未完成问题，请输入：

```copilot copy
/pr fix
```

此操作按顺序运行三个阶段：

1. **审阅反馈** - 解决所有审阅评论。
2. **冲突** - 将分支与基分支同步并解决任何冲突。
3. **CI 失败** - 诊断并修复失败的 CI 检查。

## 自动执行完整的拉取请求工作流

Copilot若要管理从创建到完全绿色状态的整个拉取请求过程，请输入：

```copilot copy
/pr auto
```

如果当前分支不存在拉取请求，Copilot 会首先创建一个拉取请求。 然后循环执行修复阶段 - 审阅反馈、冲突和 CI - 重复直到没有更多审阅评论、没有冲突且所有 CI 检查通过。

可以追加说明来指导拉取请求的创建。 例如：

```copilot copy
/pr auto include migration notes in the description
```

## 延伸阅读

* [允许和拒绝工具使用](/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli/use-copilot-cli/allowing-tools)
* [浏览来自 GitHub Copilot CLI 的问题、拉取请求和代码片段](/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli/use-copilot-cli/browse-issues-prs-gists)
* [GitHub Copilot CLI 命令参考](/zh/enterprise-cloud@latest/copilot/reference/copilot-cli-reference/cli-command-reference)