Skip to main content

This version of GitHub Enterprise was discontinued on 2022-10-12. No patch releases will be made, even for critical security issues. For better performance, improved security, and new features, upgrade to the latest version of GitHub Enterprise. For help with the upgrade, contact GitHub Enterprise support.

Creating a pull request

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.

Who can use this feature

Anyone with read access to a repository can create a pull request.

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, see "Creating a pull request from a fork" and "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.

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, see "Linking 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, see "About 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.

Pull Request editing branches

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.

Tips:

  • Using the compare view, you can set up comparisons across any timeframe. For more information, see "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."

Creating the pull request

  1. On your GitHub Enterprise Server instance, navigate to the main page of the repository.
  2. In the "Branch" menu, choose the branch that contains your commits. Branch dropdown menu
  3. Above the list of files, click Pull request. "Pull request" link above list of files
  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
  5. Type a title and description for your pull request. Pull request title and description fields
  6. To create a pull request that is ready for review, click Create Pull Request. To create a draft pull request, use the drop-down and select Create Draft Pull Request, then click Draft Pull Request. For more information about draft pull requests, see "About pull requests."Create pull request button

Tip: After you create a pull request, you can ask a specific person to review your proposed changes. For more information, see "Requesting a pull request review."

After your pull request has been reviewed, it can be merged into the repository.

To learn more about GitHub CLI, see "About GitHub CLI."

To create a pull request, use the gh pr create subcommand.

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.

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-branch

To 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 --draft

To 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-milestone

To add the new pull request to a specific project, use the --project flag.

gh pr create --project octocat-project

To assign an individual or team as reviewers, use the --reviewer flag.

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

To create the pull request in your default web browser, use the --web flag.

gh pr create --web
  1. Switch to the branch that you want to create a pull request for. For more information, see "Switching between branches."
  2. Click Create Pull Request. GitHub Desktop will open your default browser to take you to GitHub. The Create Pull Request button
  3. On GitHub, 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
  4. Type a title and description for your pull request. Pull request title and description fields
  5. To create a pull request that is ready for review, click Create Pull Request. To create a draft pull request, use the drop-down and select Create Draft Pull Request, then click Draft Pull Request. For more information about draft pull requests, see "About pull requests."Create pull request button
  1. Switch to the branch that you want to create a pull request for. For more information, see "Switching between branches."
  2. Click Create Pull Request. GitHub Desktop will open your default browser to take you to GitHub. The Create Pull Request button
  3. On GitHub, 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
  4. Type a title and description for your pull request. Pull request title and description fields
  5. To create a pull request that is ready for review, click Create Pull Request. To create a draft pull request, use the drop-down and select Create Draft Pull Request, then click Draft Pull Request. For more information about draft pull requests, see "About pull requests."Create pull request button

Further reading