| title | Creating a pull request | ||||||
|---|---|---|---|---|---|---|---|
| intro | Create a pull request to propose changes to the code in a repository. | ||||||
| permissions | Anyone with read access to a repository can create a pull request.<br>{% data reusables.enterprise-accounts.emu-permission-propose %} | ||||||
| redirect_from |
|
||||||
| versions |
|
||||||
| shortTitle | Create a pull request | ||||||
| category |
|
||||||
| contentType | how-tos |
If you want to create a new branch for your pull request but don't have write permissions to the repository, you can fork the repository first. See AUTOTITLE and AUTOTITLE.
When you create your pull request, you can specify which branch you want to merge your changes into. Pull requests can only be opened between two different branches.
{% data reusables.pull_requests.perms-to-open-pull-request %}
{% data reusables.pull_requests.close-issues-using-keywords %}
{% webui %}
{% data reusables.repositories.navigate-to-repo %}
{% data reusables.repositories.new-pull-request %}
- Use the base branch dropdown menu to select the branch where you want to merge your changes. Then, use the compare branch dropdown menu to choose the topic branch where you made your changes. {% 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. See AUTOTITLE.
{% endwebui %}
{% cli %}
{% data reusables.cli.cli-learn-more %}
To create a pull request, use the gh pr create subcommand.
gh pr createTo assign a pull request to an individual, use the --assignee or -a flags. You can use @me to self-assign the pull request.
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.
gh pr create --base my-base-branch --head my-changed-branchTo include a title and body for the new pull request, use the --title and --body flags.
gh pr create --title "The bug is fixed" --body "Everything works again"To mark a pull request as a draft, use the --draft flag.
gh pr create --draftTo add labels or milestones to the new pull request, use the --label and --milestone flags.
gh pr create --label "bug,help wanted" --milestone octocat-milestoneTo add the new pull request to a specific project, use the --project flag.
gh pr create --project octocat-projectTo assign an individual or team as reviewers, use the --reviewer flag.
gh pr create --reviewer monalisa,hubot --reviewer myorg/team-nameTo create the pull request in your default web browser, use the --web flag.
gh pr create --web{% endcli %}
{% desktop %}
-
Click Preview Pull Request. {% data variables.product.prodname_desktop %} opens a preview dialog that shows the diff of the changes between your current branch and the base branch.
Alternatively, to go straight to {% data variables.product.prodname_dotcom %} to create your pull request, select the dropdown icon and click Create Pull Request.
-
Confirm that the branch in the base: dropdown menu is the branch where you want to merge your changes.
{% data variables.product.prodname_desktop %} tells you whether the current branch can be automatically merged into the base branch.
-
Click Create Pull Request. {% data variables.product.prodname_desktop %} opens your default browser and takes you to {% data variables.product.prodname_dotcom %}. {% data reusables.repositories.pr-title-description %} {% data reusables.repositories.create-pull-request %}
{% enddesktop %}
{% ifversion fpt or ghec %}
{% codespaces %}
- After you commit changes to your local copy of the repository, click the Create Pull Request icon.

- Check that the local branch and repository you're merging from, and the remote branch and repository you're merging into, are correct. Then, give the pull request a title and a description.

- Click Create.
For more information on creating pull requests in {% data variables.product.prodname_github_codespaces %}, see AUTOTITLE.
{% endcodespaces %}
{% endif %}
After you open your pull request, you can continue changing files by adding new commits to your head branch.
{% webui %}
You can also make changes to files on the {% data variables.product.github %} website.
- On {% data variables.product.github %}, navigate to a pull request in a repository. {% data reusables.repositories.changed-files %}
- Scroll down to the file you want to make changes to.
- If the pull request has a lot of files, you can use the filter to locate the file.
- Above the file you want to change, click {% octicon "kebab-horizontal" aria-label="Show options" %}.

- In the menu, click Edit file.
- Make your changes in the editor. When you commit your change, choose to commit directly back to your head branch.
{% endwebui %}


