# Pull Requests (PRs)
A Pull Request (PR) is a [[GitHub]] feature for proposing code changes and requesting review before merging into a target branch. The name comes from the action of "pulling" changes from a feature branch into the main codebase. PRs are central to modern collaborative software development, enabling code review, discussion, and CI/CD integration.
[[GitLab]] uses the equivalent term [[Merge Requests (MRs)|Merge Request (MR)]], which emphasizes the merging action rather than the pulling.
## Workflow
1. Create a feature branch from main/develop
2. Make commits with changes
3. Push branch to remote repository
4. Open a Pull Request against target branch
5. Reviewers examine code, leave comments
6. CI/CD pipelines run automated tests
7. Address feedback with additional commits
8. Merge once approved and tests pass
## Key Components
- **Title & Description**: Summarize changes and context
- **Diff view**: Side-by-side comparison of changes
- **Reviewers**: Team members assigned to review
- **Comments**: Line-by-line or general discussion
- **CI status**: Automated test/build results
- **Merge options**: Merge commit, squash, rebase
## Best Practices
- Keep PRs small and focused (single concern)
- Write clear descriptions explaining "why"
- Include tests for new functionality
- Respond promptly to review feedback
- Use draft PRs for work-in-progress
## References
- https://docs.github.com/en/pull-requests
## Related
- [[Merge Requests (MRs)]]
- [[Git]]
- [[GitHub]]
- [[GitLab]]
- [[DevOps]]