Merge PR Guide (Non-Interactive)
Follow this guide to merge GitHub pull requests using gh pr merge. All operations are command-line only — no interactive editors.
Merge Commands
Squash Merge (Preferred)
# Squash and merge to canary
gh pr merge 23 --squash --delete-branch
# With commit message
gh pr merge 23 --squash --delete-branch --subject "feat(skills): add new feature"
Merge Commit
# Regular merge commit
gh pr merge 23 --admin --delete-branch
Rebase and Merge
# Rebase onto base branch
gh pr merge 23 --rebase --delete-branch
Merge Options
# Squash merge (recommended)
gh pr merge 23 --squash --delete-branch
# With custom subject
gh pr merge 23 --squash --delete-branch --subject "feat(scope): description"
# Auto-delete branch after merge
gh pr merge 23 --squash --delete-branch
# No delete branch
gh pr merge 23 --squash
Merge Strategy
| Strategy | When to Use | Preserves History |
|---|---|---|
| Squash | Most PRs | No - single commit |
| Merge commit | Collaborative PRs | Yes - full history |
| Rebase | Clean linear history | Yes - individual commits |
Marty prefers squash merge for cleaner history on main and canary.
Before Merging
Verify the PR is ready:
# Check PR status
gh pr view 23
# Check if CI is passing
gh pr check 23
# View diff
gh pr diff 23
Common Workflows
Standard Squash Merge
# Verify CI passes first
gh pr check 23
# If all checks pass, merge
gh pr merge 23 --squash --delete-branch
Merge and Set Commit Message
# Use PR title as commit subject (default)
gh pr merge 23 --squash --delete-branch
# Or provide custom message
gh pr merge 23 --squash --delete-branch --subject "feat(skills): add feature
Detailed description of what was done.
Co-Authored-By: martyy-code <nesalia.inc@gmail.com>"
Merge Canary to Main
# From main branch
git checkout main && git pull
git merge origin/canary
git push
Merge to Main Only
After verifying canary is stable, merge to main:
# Merge canary to main (squash)
gh pr merge 23 --squash --delete-branch
# Where PR 23 is canary -> main
Quick Reference
Squash merge: gh pr merge 23 --squash --delete-branch
Merge commit: gh pr merge 23 --admin --delete-branch
Rebase merge: gh pr merge 23 --rebase --delete-branch
Custom subject: gh pr merge 23 --squash --delete-branch --subject "..."
Check PR: gh pr view 23
Check CI: gh pr check 23
Common Mistakes to Avoid
- Merge without CI passing: Always verify tests pass first
- Skip canary verification: Don't merge to main without testing on canary
- Force push after merge: Never force push main or canary
- Merge conflicts unresolved: Always resolve conflicts before merging
Related Skills
| Skill | When to Use |
|---|---|
/create-pr |
Create PR before merging |
/close-pr |
Close without merging |
/sync |
Sync branches before merge |
/setup-canary |
Canary workflow details |