gh pr create
gh pr create [flags]
Create a pull request on GitHub.
When the current branch isn't fully pushed to a git remote, a prompt will ask where
to push the branch and offer an option to fork the base repository. Use --head
to
explicitly skip any forking or pushing behavior.
A prompt will also ask for the title and the body of the pull request. Use --title
and
--body
to skip this, or use --fill
to autofill these values from git commits.
It's important to notice that if the --title
and/or --body
are also provided
alongside --fill
, the values specified by --title
and/or --body
will
take precedence and overwrite any autofilled content.
The base branch for the created PR can be specified using the --base
flag. If not provided,
the value of gh-merge-base
git branch config will be used. If not configured, the repository's
default branch will be used.
Link an issue to the pull request by referencing the issue in the body of the pull
request. If the body text mentions Fixes #123
or Closes #123
, the referenced issue
will automatically get closed when the pull request gets merged.
By default, users with write access to the base repository can push new commits to the
head branch of the pull request. Disable this with --no-maintainer-edit
.
Adding a pull request to projects requires authorization with the project
scope.
To authorize, run gh auth refresh -s project
.
Options
-a
,--assignee <login>
- Assign people by their login. Use "@me" to self-assign.
-B
,--base <branch>
- The branch into which you want your code merged
-b
,--body <string>
- Body for the pull request
-F
,--body-file <file>
- Read body text from file (use "-" to read from standard input)
-d
,--draft
- Mark pull request as a draft
-
--dry-run
- Print details instead of creating the PR. May still push git changes.
-e
,--editor
- Skip prompts and open the text editor to write the title and body in. The first line is the title and the remaining text is the body.
-f
,--fill
- Use commit info for title and body
-
--fill-first
- Use first commit info for title and body
-
--fill-verbose
- Use commits msg+body for description
-H
,--head <branch>
- The branch that contains commits for your pull request (default [current branch])
-l
,--label <name>
- Add labels by name
-m
,--milestone <name>
- Add the pull request to a milestone by name
-
--no-maintainer-edit
- Disable maintainer's ability to modify pull request
-p
,--project <title>
- Add the pull request to projects by title
-
--recover <string>
- Recover input from a failed run of create
-r
,--reviewer <handle>
- Request reviews from people or teams by their handle
-T
,--template <file>
- Template file to use as starting body text
-t
,--title <string>
- Title for the pull request
-w
,--web
- Open the web browser to create a pull request
Options inherited from parent commands
-R
,--repo <[HOST/]OWNER/REPO>
- Select another repository using the [HOST/]OWNER/REPO format
ALIASES
gh pr new
Examples
See also
In use
Interactively
# Create a pull request interactively
~/Projects/my-project$ gh pr create
Creating pull request for feature-branch into main in owner/repo
? Title My new pull request
? Body [(e) to launch nano, enter to skip]
http://github.com/owner/repo/pull/1
~/Projects/my-project$
With flags
# Create a pull request using flags
~/Projects/my-project$ gh pr create --title "Pull request title" --body "Pull request body"
http://github.com/owner/repo/pull/1
~/Projects/my-project$
In the browser
// Quickly navigate to the pull request creation page
~/Projects/my-project$ gh pr create --web
Opening https://github.com/owner/repo/pull/branch in your browser.
~/Projects/my-project$
Working with forks
This command will automatically create a fork for you if you're in a repository that you don't have permission to push to.