A typical pull request lifecycle:
- Draft —
gh pr create --draft. Code shared early for early feedback, not yet ready for review.
- Ready — mark ready, request reviewers. CI runs.
- Review — back-and-forth: reviewers comment, you push fixes (same branch).
- Approved — green check, all conversations resolved.
- Merged — squash, rebase, or merge commit per repo policy.
- Closed (without merging) — work abandoned or superseded.
Etiquette:
- Don't force-push during active review — destroys reviewer's place.
- Resolve conversations only after the reviewer agrees (don't unilaterally close their thread).
- Add a brief description per PR — why, not what. The code shows the what.
- Re-request review after substantial changes; don't expect reviewers to come back unprompted.
Use gh pr status to see your PRs needing attention.