0
0
GitHow-ToBeginner · 4 min read

How to Set Branch Protection Rules in Git Repositories

To set branch protection rules, go to your Git repository settings on platforms like GitHub or GitLab, then select the branch you want to protect and configure rules such as requiring pull request reviews or status checks. These rules prevent direct pushes and enforce quality checks before merging changes.
📐

Syntax

Branch protection rules are configured through the repository settings on Git hosting platforms, not directly via Git commands. The typical options include:

  • Branch name pattern: Specify which branches the rules apply to (e.g., main or release/*).
  • Require pull request reviews: Enforce code review before merging.
  • Require status checks: Ensure automated tests pass before merging.
  • Restrict who can push: Limit push access to certain users or teams.

These settings help maintain code quality and prevent accidental changes.

git
Branch Protection Rule Configuration Example:
- Branch name pattern: main
- Require pull request reviews: Enabled
- Require status checks: Enabled (e.g., CI tests)
- Restrict who can push: Only maintainers
💻

Example

This example shows how to set branch protection rules on GitHub for the main branch to require pull request reviews and status checks before merging.

text
1. Go to your GitHub repository.
2. Click on <strong>Settings</strong> tab.
3. Select <strong>Branches</strong> from the sidebar.
4. Under <strong>Branch protection rules</strong>, click <strong>Add rule</strong>.
5. Enter <code>main</code> in <strong>Branch name pattern</strong>.
6. Check <strong>Require pull request reviews before merging</strong>.
7. Check <strong>Require status checks to pass before merging</strong> and select your CI checks.
8. Optionally, enable <strong>Restrict who can push to matching branches</strong> and select users or teams.
9. Click <strong>Create</strong> to save the rule.
Output
Branch protection rule for 'main' created successfully.
⚠️

Common Pitfalls

Common mistakes when setting branch protection rules include:

  • Not specifying the correct branch name pattern, so rules don't apply as expected.
  • Forgetting to enable required status checks, allowing untested code to merge.
  • Restricting push access too broadly, blocking necessary collaborators.
  • Not updating rules when branch names change.

Always double-check the branch pattern and test the rules with a pull request.

text
Wrong way:
- Branch name pattern: master (but your main branch is named main)
- No status checks required

Right way:
- Branch name pattern: main
- Require status checks enabled
📊

Quick Reference

SettingDescription
Branch name patternDefines which branches the rule applies to (e.g., main, release/*)
Require pull request reviewsEnforces code review before merging changes
Require status checksEnsures automated tests pass before merging
Restrict who can pushLimits push access to specific users or teams
Include administratorsApplies rules even to repository admins

Key Takeaways

Set branch protection rules in your Git hosting platform settings, not via Git commands.
Use branch name patterns to target specific branches like main or release/*.
Require pull request reviews and status checks to maintain code quality.
Restrict push access carefully to avoid blocking collaborators.
Test your rules with pull requests to ensure they work as expected.