# 创建拉取请求

创建拉取请求以建议对存储库中的代码进行更改。

如果想要为拉取请求创建新分支，但对存储库没有写入权限，可以先分叉存储库。 请参阅 [Creating a pull request from a fork](/zh/enterprise-server@3.20/pull-requests/how-tos/create-pull-requests/creating-a-pull-request-from-a-fork) 和 [叉子](/zh/enterprise-server@3.20/pull-requests/reference/forks)。

创建拉取请求时，可以指定要将更改合并到哪个分支。 拉取请求只能在不同的两个分支之间打开。

可以将拉取请求链接到问题，以显示修复正在进行，并在合并拉取请求时自动关闭问题。 有关详细信息，请参阅“[将拉取请求链接到议题](/zh/enterprise-server@3.20/issues/tracking-your-work-with-issues/using-issues/linking-a-pull-request-to-an-issue)”。

## 创建拉取请求

<div class="ghd-tool webui">

1. 在 GitHub 上，导航到存储库的主页面。

2. 在“Branch（分支）”菜单中，选择包含提交的分支。

   ![存储库主页上分支下拉菜单的屏幕截图。](/assets/images/help/pull_requests/branch-dropdown.png)

3. 在文件列表上方的黄色横幅中，单击“比较和拉取请求”\*\*\*\*，为关联的分支创建拉取请求。

   ![文件列表上方横幅的屏幕截图。](/assets/images/help/pull_requests/pull-request-compare-pull-request.png)

4. 使用 *基* 分支下拉菜单选择要合并更改的分支。 然后，使用 *compare* 分支下拉菜单选择你进行更改的主题分支。

5. 为您的拉取请求输标题和说明。

6. 要创建可供审查的拉取请求，请单击“创建拉取请求”。
   若要创建草稿拉取请求，请使用下拉列表并选择“创建草稿拉取请求”，然后单击“草稿拉取请求” 。 如果你是组织的成员，则可能需要从组织所有者请求对草稿拉取请求的访问权限。 请参阅“[拉取请求](/zh/enterprise-server@3.20/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests#draft-pull-requests)”。

> \[!TIP]
> 创建拉取请求后，你可请求特定人员[审查你提议的更改](/zh/enterprise-server@3.20/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request)。 有关详细信息，请参阅“[请求拉取请求审查](/zh/enterprise-server@3.20/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/requesting-a-pull-request-review)”。

审查拉取请求后，可以将其合并到存储库中。 请参阅“[合并拉取请求](/zh/enterprise-server@3.20/pull-requests/how-tos/merge-and-close-pull-requests/merging-a-pull-request)”。

</div>

<div class="ghd-tool cli">

> \[!NOTE]
> 若要详细了解 GitHub CLI，请参阅“[关于 GitHub CLI](/zh/enterprise-server@3.20/github-cli/github-cli/about-github-cli)”。

若要创建拉取请求，请使用 `gh pr create` 子命令。

```shell
gh pr create
```

若要将拉取请求分配给个人，请使用 `--assignee` 或 `-a` 标志。 可以使用 `@me` 自行分配拉取请求。

```shell
gh pr create --assignee "@octocat"
```

若要指定要将拉取请求合并到的分支，请使用 `--base` 或 `-B` 标志。 若要指定包含你的拉取请求提交的分支，请使用 `--head` 或 `-H` 标志。

```shell
gh pr create --base my-base-branch --head my-changed-branch
```

若要包含新拉取请求的标题和正文，请使用 `--title` 和 `--body` 标志。

```shell
gh pr create --title "The bug is fixed" --body "Everything works again"
```

若要将拉取请求标记为草稿，请使用 `--draft` 标志。

```shell
gh pr create --draft
```

若要向新的拉取请求添加标签或里程碑，请使用 `--label` 和 `--milestone` 标志。

```shell
gh pr create --label "bug,help wanted" --milestone octocat-milestone
```

若要将新的拉取请求添加到特定项目，请使用 `--project` 标志。

```shell
gh pr create --project octocat-project
```

若要将个人或团队指定为审阅者，请使用 `--reviewer` 标志。

```shell
gh pr create --reviewer monalisa,hubot --reviewer myorg/team-name
```

若要在默认 Web 浏览器中创建拉取请求，请使用 `--web` 标志。

```shell
gh pr create --web
```

</div>

<div class="ghd-tool desktop">

1. 单击**预览拉取请求**。
   GitHub Desktop 打开一个预览对话框，显示当前分支和基分支之间的更改差异。

   或者，若要直接转到 GitHub 创建拉取请求，请选择下拉列表图标并单击“ **创建拉取请求**”。

2. 确认“**base:**”下拉菜单中的分支是要合并更改的分支。

   ![“打开拉取请求”对话框窗口的屏幕截图。 带有下拉图标（标有“基础: 开发”）的按钮以橙色框出。](/assets/images/help/desktop/base-branch-selection.png)

GitHub Desktop 指示当前分支是否可以自动合并到基分支中。

![“打开拉取请求”对话框窗口的屏幕截图。 显示“无法自动合并”的状态标签以橙色边框突出显示。](/assets/images/help/desktop/preview-dialog-merge-status.png)

1. 单击**Create Pull Request**。
   GitHub Desktop 会打开你的默认浏览器并带你前往 GitHub。
2. 为您的拉取请求输标题和说明。
3. 要创建可供审查的拉取请求，请单击“创建拉取请求”。
   若要创建草稿拉取请求，请使用下拉列表并选择“创建草稿拉取请求”，然后单击“草稿拉取请求” 。 如果你是组织的成员，则可能需要从组织所有者请求对草稿拉取请求的访问权限。 请参阅“[拉取请求](/zh/enterprise-server@3.20/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests#draft-pull-requests)”。

</div>

## 对拉取请求中的文件进行更改

打开拉取请求后，可以通过向头分支添加新提交来继续更改文件。

<div class="ghd-tool webui">

您还可以在 GitHub 网站上修改文件。

1. 在 GitHub 上，转到存储库中的拉取请求。
2. 在拉取请求上，单击“<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-file-diff" aria-label="file-diff" role="img"><path d="M1 1.75C1 .784 1.784 0 2.75 0h7.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16H2.75A1.75 1.75 0 0 1 1 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25V4.664a.25.25 0 0 0-.073-.177l-2.914-2.914a.25.25 0 0 0-.177-.073ZM8 3.25a.75.75 0 0 1 .75.75v1.5h1.5a.75.75 0 0 1 0 1.5h-1.5v1.5a.75.75 0 0 1-1.5 0V7h-1.5a.75.75 0 0 1 0-1.5h1.5V4A.75.75 0 0 1 8 3.25Zm-3 8a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75Z"></path></svg> Files changed”\*\*\*\*。

   ![拉取请求的选项卡的屏幕截图。 “已更改的文件”选项卡以深橙色突出显示。](/assets/images/help/pull_requests/pull-request-tabs-changed-files.png)
3. 向下滚动到要更改的文件。
   * 如果拉取请求包含大量文件，可以使用筛选器来找到文件。
4. 在要更改的文件上方，单击 <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-kebab-horizontal" aria-label="Show options" role="img"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg>。

![该屏幕截图显示了“文件已更改”选项卡上的文件上方的选项。“显示选项”按钮以橙色矩形突出显示。](/assets/images/help/pull_requests/menu-on-pull-request-file.png)

1. 在菜单上，单击“编辑文件”\*\*\*\*。
2. 在编辑器中进行更改。 提交更改时，选择直接提交回当前头部分支。

</div>

## 延伸阅读

* [Creating a pull request from a fork](/zh/enterprise-server@3.20/pull-requests/how-tos/create-pull-requests/creating-a-pull-request-from-a-fork)
* [使拉取请求与基础分支保持同步](/zh/enterprise-server@3.20/pull-requests/how-tos/create-pull-requests/keeping-your-pull-request-in-sync-with-the-base-branch)
* [Changing the base branch of a pull request](/zh/enterprise-server@3.20/pull-requests/how-tos/create-pull-requests/changing-the-base-branch-of-a-pull-request)
* [创建议题](/zh/enterprise-server@3.20/issues/tracking-your-work-with-issues/using-issues/creating-an-issue)
* [向其他GitHub用户分配问题和拉取请求](/zh/enterprise-server@3.20/issues/tracking-your-work-with-issues/using-issues/assigning-issues-and-pull-requests-to-other-github-users)
* [在 GitHub 上写入](/zh/enterprise-server@3.20/get-started/writing-on-github)