1
0
mirror of synced 2026-01-03 15:05:54 -05:00
Files
docs/content/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request.md
Sarah Edwards 4b5cfca433 Add CLI content to handul of articles (#19810)
* move workflow disable content to tool selector

* add cli tab to workflow articles

* seeing if this works

* add reusable

* update for each platform

* update with flags

* update with product switchers

* update with end tag

* add cli tab

* update with cli and desktop tabs

* add desktop and cli tabs

* remove tip

* get tests passing

* last small updates

* fix break

* remove break maybe

* update with download link reusable

* update with download resuable

* resolve feedback

* quotes around string

* flesh this out a bit more

* remove reusable

* update with more feedback

Co-authored-by: Meg Bird <megbird@github.com>
2021-07-01 07:40:44 -06:00

162 lines
8.2 KiB
Markdown

---
title: Creating a pull request
intro: 'Create a pull request to propose and collaborate on changes to a repository. These changes are proposed in a *branch*, which ensures that the default branch only contains finished and approved work.'
redirect_from:
- /github/collaborating-with-issues-and-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request
- /articles/creating-a-pull-request
- /github/collaborating-with-issues-and-pull-requests/creating-a-pull-request
versions:
fpt: '*'
ghes: '*'
ghae: '*'
topics:
- Pull requests
---
Anyone with read permissions to a repository can create a pull request, but you must have write permissions to create a branch. If you want to create a new branch for your pull request and don't have write permissions to the repository, you can fork the repository first. For more information, see "[Creating a pull request from a fork](/articles/creating-a-pull-request-from-a-fork)" and "[About forks](/articles/about-forks)."
You can specify which branch you'd like to merge your changes into when you create your pull request. Pull requests can only be opened between two branches that are different.
{% data reusables.pull_requests.perms-to-open-pull-request %}
{% data reusables.pull_requests.close-issues-using-keywords %}
## Changing the branch range and destination repository
By default, pull requests are based on the parent repository's default branch. For more information, see "[About branches](/github/collaborating-with-issues-and-pull-requests/about-branches#about-the-default-branch)."
If the default parent repository isn't correct, you can change both the parent repository and the branch with the drop-down lists. You can also swap your head and base branches with the drop-down lists to establish diffs between reference points. References here must be branch names in your GitHub repository.
![Pull Request editing branches](/assets/images/help/pull_requests/pull-request-review-edit-branch.png)
When thinking about branches, remember that the *base branch* is **where** changes should be applied, the *head branch* contains **what** you would like to be applied.
When you change the base repository, you also change notifications for the pull request. Everyone that can push to the base repository will receive an email notification and see the new pull request in their dashboard the next time they sign in.
When you change any of the information in the branch range, the Commit and Files changed preview areas will update to show your new range.
{% tip %}
**Tips**:
- Using the compare view, you can set up comparisons across any timeframe. For more information, see "[Comparing commits](/github/committing-changes-to-your-project/comparing-commits)."
- Project maintainers can add a pull request template for a repository. Templates include prompts for information in the body of a pull request. For more information, see "[About issue and pull request templates](/articles/about-issue-and-pull-request-templates)."
{% endtip %}
## Creating the pull request
{% include tool-switcher %}
{% webui %}
{% data reusables.repositories.navigate-to-repo %}
2. In the "Branch" menu, choose the branch that contains your commits.
![Branch dropdown menu](/assets/images/help/pull_requests/branch-dropdown.png)
{% data reusables.repositories.new-pull-request %}
4. Use the _base_ branch dropdown menu to select the branch you'd like to merge your changes into, then use the _compare_ branch drop-down menu to choose the topic branch you made your changes in.
![Drop-down menus for choosing the base and compare branches](/assets/images/help/pull_requests/choose-base-and-compare-branches.png)
{% data reusables.repositories.pr-title-description %}
{% data reusables.repositories.create-pull-request %}
{% data reusables.repositories.asking-for-review %}
After your pull request has been reviewed, it can be [merged into the repository](/articles/merging-a-pull-request).
{% endwebui %}
{% cli %}
{% data reusables.cli.download-cli %}
To create a pull request, use the `gh pr create` subcommand.
```shell
gh pr create
```
To assign a pull request to an individual, use the `--assignee` or `-a` flags. You can use `@me` to self-assign the pull request.
```shell
gh pr create --assignee "@octocat"
```
To specify the branch into which you want the pull request merged, use the `--base` or `-B` flags. To specify the branch that contains commits for your pull request, use the `--head` or `-H` flags.
```shell
gh pr create --base my-base-branch --head my-changed-branch
```
To include a title and body for the new pull request, use the `--title` and `--body` flags.
```shell
gh pr create --title "The bug is fixed" --body "Everything works again"
```
To mark a pull request as a draft, use the `--draft` flag.
```shell
gh pr create --draft
```
To add a labels or milestones to the new pull request, use the `--label` and `--milestone` flags.
```shell
gh pr create --label "bug,help wanted" --milestone octocat-milestone
```
To add the new pull request to a specific project, use the `--project` flag.
```shell
gh pr create --project octocat-project
```
To assign an individual or team as reviewers, use the `--reviewer` flag.
```shell
gh pr create --reviewer monalisa,hubot --reviewer myorg/team-name
```
To create the pull request in your default web browser, use the `--web` flag.
```shell
gh pr create --web
```
{% endcli %}
{% desktop %}
{% mac %}
1. Switch to the branch that you want to create a pull request for. For more information, see "[Switching between branches](/desktop/contributing-and-collaborating-using-github-desktop/managing-branches#switching-between-branches)."
2. Click **Create Pull Request**. {% data variables.product.prodname_desktop %} will open your default browser to take you to {% data variables.product.prodname_dotcom %}.
![The Create Pull Request button](/assets/images/help/desktop/mac-create-pull-request.png)
4. On {% data variables.product.prodname_dotcom %}, confirm that the branch in the **base:** drop-down menu is the branch where you want to merge your changes. Confirm that the branch in the **compare:** drop-down menu is the topic branch where you made your changes.
![Drop-down menus for choosing the base and compare branches](/assets/images/help/desktop/base-and-compare-branches.png)
{% data reusables.repositories.pr-title-description %}
{% data reusables.repositories.create-pull-request %}
{% endmac %}
{% windows %}
1. Switch to the branch that you want to create a pull request for. For more information, see "[Switching between branches](/desktop/contributing-and-collaborating-using-github-desktop/managing-branches#switching-between-branches)."
2. Click **Create Pull Request**. {% data variables.product.prodname_desktop %} will open your default browser to take you to {% data variables.product.prodname_dotcom %}.
![The Create Pull Request button](/assets/images/help/desktop/windows-create-pull-request.png)
3. On {% data variables.product.prodname_dotcom %}, confirm that the branch in the **base:** drop-down menu is the branch where you want to merge your changes. Confirm that the branch in the **compare:** drop-down menu is the topic branch where you made your changes.
![Drop-down menus for choosing the base and compare branches](/assets/images/help/desktop/base-and-compare-branches.png)
{% data reusables.repositories.pr-title-description %}
{% data reusables.repositories.create-pull-request %}
{% endwindows %}
{% enddesktop %}
## Further reading
- "[Creating a pull request from a fork](/articles/creating-a-pull-request-from-a-fork)"
- "[Changing the base branch of a pull request](/articles/changing-the-base-branch-of-a-pull-request)"
- "[Adding issues and pull requests to a project board from the sidebar](/articles/adding-issues-and-pull-requests-to-a-project-board/#adding-issues-and-pull-requests-to-a-project-board-from-the-sidebar)"
- "[About automation for issues and pull requests with query parameters](/issues/tracking-your-work-with-issues/creating-issues/about-automation-for-issues-and-pull-requests-with-query-parameters)"
- "[Assigning issues and pull requests to other GitHub users](/issues/tracking-your-work-with-issues/managing-issues/assigning-issues-and-pull-requests-to-other-github-users)"
- "[Writing on GitHub](/github/writing-on-github)"