Overview
Pull requests (PRs) are the primary way to propose, review, and merge changes in collaborative Git workflows. GitHub Desktop provides seamless integration with GitHub pull requests.Create PRs
Create pull requests directly from the app
Review Changes
View PR status, checks, and reviews
Checkout PRs
Check out pull requests for local testing
Branch Management
Automatically manage fork remotes for PR branches
Creating Pull Requests
Create from Branch
Push Your Branch
Ensure your branch is published to the remote:
- Click Publish branch if it’s not yet published
- Or Push origin if you have new commits
Open PR Creation
Click Branch > Create Pull Request or press
Ctrl+R (Windows/Linux) or Cmd+R (macOS)Configure on GitHub
GitHub Desktop opens your browser to GitHub’s PR creation page with:
- Base branch pre-selected
- Your branch as the compare branch
- Commit messages pre-filled
Create from Fork
When working on a fork:Viewing Pull Request Status
PR Information in GitHub Desktop
When on a branch with an associated pull request: Branch Badge- PR number and title appear in the branch dropdown
- Visual indicator shows PR state (open, merged, closed)
- Click to view PR details
- See review status
- Check CI/CD status
- View merge conflicts
- CI/CD check results
- Required reviews status
- Merge conflicts detection
- Branch protection rules
Pull Request States
Open
Open
The pull request is open and under review:
- Green icon
- Can push new commits
- Can request reviews
- Can merge when ready
Merged
Merged
The pull request has been merged:
- Purple merged icon
- Branch can be safely deleted
- Commits are now in the base branch
Closed
Closed
The pull request was closed without merging:
- Red closed icon
- Changes were not merged
- Can be reopened if needed
Draft
Draft
The pull request is marked as a work in progress:
- Gray draft icon
- Cannot be merged until marked ready
- Useful for early feedback
Checking Out Pull Requests
Check Out Your Own PR
Check Out Someone Else’s PR
For pull requests from forks:GitHub Desktop automatically manages fork remotes using the prefix
github-desktop- to keep your remote list clean.Fork Remote Management
From the technical documentation:- Automatic remote creation for fork PRs
- Cleanup when PRs are closed
- Prevents remote list from growing unbounded
- Uses
github-desktop-prefix for namespace safety
Updating Pull Requests
Adding Commits
Add more commits to an open pull request:Responding to Review Comments
CI/CD Integration
GitHub Desktop shows the status of GitHub Actions and other CI checks:Check Status Indicators
- Pending: Yellow circle - checks are running
- Success: Green checkmark - all checks passed
- Failure: Red X - one or more checks failed
- Required: Checks that must pass before merging
Viewing Check Details
Merge Conflicts in PRs
When your pull request has conflicts with the base branch:Update from Base Branch
- Click Branch > Update from [base-branch]
- Or merge the base branch into your PR branch
Suggested Next Actions
After creating a pull request, GitHub Desktop suggests next actions:- View on GitHub: Open the PR in your browser
- Create another PR: Create another pull request from a different branch
- Switch branches: Continue working on another branch
Branch Protection and PR Requirements
GitHub Desktop respects branch protection rules:Protected Branch Indicators
- Required reviews: Shows how many reviews are needed
- Required status checks: Lists checks that must pass
- Restricted push: Indicates if force push is blocked
- Admin enforcement: Shows if admins must follow rules
Pull Request Reviews
- Approved: Green checkmark - reviewers approved changes
- Changes requested: Red X - reviewers requested changes
- Commented: Gray - reviewers left comments without approval
- Pending: Yellow - waiting for reviews
Draft Pull Requests
Create draft pull requests for early feedback:Mark as Draft
On GitHub, click the dropdown next to Create pull request and select Create draft pull request
Pull Request Templates
If your repository has PR templates:- Templates are automatically loaded when creating PRs on GitHub
- Fill in the template sections
- Templates help ensure consistent PR descriptions
- Common sections: Changes, Testing, Screenshots, Related Issues
Comparing Branches Before Creating PRs
Preview changes before creating a pull request:Best Practices
- One Feature per PR: Each pull request should address a single feature or bug fix
- Write Clear Descriptions: Explain what changed and why
- Link to Issues: Reference related issues with
Fixes #123orRelates to #456 - Request Appropriate Reviewers: Tag reviewers who are familiar with the code
- Respond to Feedback: Address review comments promptly
- Keep PRs Updated: Regularly update from the base branch to avoid conflicts
- Test Before Creating: Ensure your changes work before opening a PR
- Use Draft PRs: Mark work-in-progress PRs as drafts
Keyboard Shortcuts
| Action | Windows/Linux | macOS |
|---|---|---|
| Create pull request | Ctrl+R | Cmd+R |
| View on GitHub | Ctrl+Shift+G | Cmd+Shift+G |
Troubleshooting
Cannot Create Pull Request
Cannot Create Pull Request
If you can’t create a PR:
- Branch not pushed: Publish your branch first
- No changes: Ensure you have commits that differ from the base branch
- Not signed in: Sign in to your GitHub account in GitHub Desktop
- No write access: Verify you have permission to create PRs
PR Not Showing in List
PR Not Showing in List
If a pull request doesn’t appear:
- Refresh the repository (Repository > Fetch origin)
- Ensure you’re signed in to the correct GitHub account
- Check that the PR is for this repository (not a different fork)
- Verify the PR hasn’t been closed or merged
Cannot Check Out PR from Fork
Cannot Check Out PR from Fork
If checking out a fork PR fails:
- Check your internet connection
- Verify you have read access to the fork
- Try fetching manually: Repository > Fetch origin
- Check for network/proxy issues
Check Status Not Updating
Check Status Not Updating
If CI/CD checks don’t update:
- Click Repository > Fetch origin to refresh
- Verify GitHub Actions are enabled on the repository
- Check if the workflow is configured correctly
- View the PR on GitHub for real-time status