Creating a pull request
Create a pull request to propose and collaborate on changes to a repository. These changes are proposed in abranch, which ensures that the default branch only contains finished and approved work.
Who can use this feature?
Anyone with read access to a repository can create a pull request.
Tool navigation
In this article
If you want to create a new branch for your pull request and do not have write permissions to the repository, you can fork the repository first. For more information, seeCreating a pull request from a fork andAbout 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.
Note
To open a pull request in a public repository, you must have write access to the head or the source branch or, for organization-owned repositories, you must be a member of the organization that owns the repository to open a pull request.
You can link a pull request to an issue to show that a fix is in progress and to automatically close the issue when someone merges the pull request. For more information, seeLinking a pull request to an issue.
Changing the branch range and destination repository
By default, pull requests are based on the parent repository's default branch. For more information, seeAbout branches.
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.

When thinking about branches, remember that thebase branch iswhere changes should be applied, thehead branch containswhat 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
- Using the compare view, you can set up comparisons across any timeframe. For more information, seeComparing 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, seeAbout issue and pull request templates.
Creating the pull request
On GitHub, navigate to the main page of the repository.
In the "Branch" menu, choose the branch that contains your commits.

Above the list of files, in the yellow banner, clickCompare & pull request to create a pull request for the associated branch.

Use thebase branch dropdown menu to select the branch you'd like to merge your changes into, then use thecompare branch drop-down menu to choose the topic branch you made your changes in.
Type a title and description for your pull request.
To create a pull request that is ready for review, clickCreate Pull Request.To create a draft pull request, use the drop-down and selectCreate Draft Pull Request, then clickDraft Pull Request. If you are the member of an organization, you may need to request access to draft pull requests from an organization owner. SeeAbout pull requests.
Tip
After you create a pull request, you can ask a specific person toreview your proposed changes. For more information, seeRequesting a pull request review.
After your pull request has been reviewed, it can bemerged into the repository.
Note
To learn more about GitHub CLI, seeAbout GitHub CLI.
To create a pull request, use thegh 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 a 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 --webClickPreview Pull Request. GitHub Desktop will open a preview dialog showing the diff of the changes between your current branch and the base branch.


Alternatively, to go straight to GitHub to create your pull request, select the dropdown icon and clickCreate Pull Request.
Confirm that the branch in thebase: dropdown menu is the branch where you want to merge your changes.

GitHub Desktop will advise you whether the current branch can be automatically merged into the base branch.

ClickCreate Pull Request. GitHub Desktop will open your default browser to take you to GitHub.
Type a title and description for your pull request.
To create a pull request that is ready for review, clickCreate Pull Request.To create a draft pull request, use the drop-down and selectCreate Draft Pull Request, then clickDraft Pull Request. If you are the member of an organization, you may need to request access to draft pull requests from an organization owner. SeeAbout pull requests.
- Once you've committed changes to your local copy of the repository, click theCreate 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.

- ClickCreate.
For more information on creating pull requests in GitHub Codespaces, seeUsing GitHub Codespaces for pull requests.
Making changes to files in your pull request
After you have opened your pull request, you can continue making changes to the files by adding new commits to your head branch.
You can also make changes to files on the GitHub website.
On GitHub, navigate to a pull request in a repository.
On the pull request, click Files changed.

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. SeeFiltering files in a pull request.
Above the file you want to change, click.

In the menu, clickEdit file.
Make your changes in the editor and when committing your change, choose to commit directly back to your head branch.