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
Review Changes
Checkout PRs
Branch Management
Creating Pull Requests
Create from Branch
Push Your Branch
- Click Publish branch if it’s not yet published
- Or Push origin if you have new commits
Open PR Creation
Ctrl+R (Windows/Linux) or Cmd+R (macOS)Configure on GitHub
- Base branch pre-selected
- Your branch as the compare branch
- Commit messages pre-filled
Complete on GitHub
- Review the title and description
- Add reviewers and labels
- Assign to project boards
- Click Create pull request
Create from Fork
When working on a fork:Ensure Upstream is Set
Push to Fork
Create Pull Request
Select Base Repository
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
- Green icon
- Can push new commits
- Can request reviews
- Can merge when ready
Merged
Merged
- Purple merged icon
- Branch can be safely deleted
- Commits are now in the base branch
Closed
Closed
- Red closed icon
- Changes were not merged
- Can be reopened if needed
Draft
Draft
- Gray draft icon
- Cannot be merged until marked ready
- Useful for early feedback
Checking Out Pull Requests
Check Out Your Own PR
View Pull Requests
Select PR
Checkout
Check Out Someone Else’s PR
For pull requests from forks:Open PR List
Find PR
Checkout from Fork
- GitHub Desktop automatically adds a remote for the fork
- Downloads the branch
- Switches to the PR branch
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:Ensure You're on PR Branch
Make Changes
Push Changes
Verify on GitHub
Responding to Review Comments
View Reviews
Make Requested Changes
Commit and Push
Resolve Conversations
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
Click PR Tab
View Checks
Open Details
Merge Conflicts in PRs
When your pull request has conflicts with the base branch:Conflict Notification
Update from Base Branch
- Click Branch > Update from [base-branch]
- Or merge the base branch into your PR branch
Resolve Conflicts
Push Resolution
Merge on GitHub
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:Create PR on GitHub
Mark as Draft
Work in Progress
Ready for Review
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:Compare to Branch
Select Base Branch
Review Differences
- Commits that will be included
- Files that changed
- Line-by-line diffs
Create PR
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
Troubleshooting
Cannot Create Pull Request
Cannot Create Pull Request
- 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
- 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
- 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
- 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