Repository administrators can enable protected branches for limiting branch manipulation, as well as enforce required status checks before a branch is merged in a pull request or before commits on a local branch can be pushed to the protected remote branch.
Enabling a protected branch for a repository
On GitHub Enterprise, navigate to the main page of the repository.
Under your repository name, click Settings.
In the left menu, click Branches.
Under Protected Branches, select the branch you want to mark protected using the drop-down menu.
- Select Protect this branch.
- Click Save changes.
Types of required status checks
Type of required status check | Setting | Merge requirements | Considerations |
---|---|---|---|
Strict | The Require branches to be up-to-date before merging checkbox is checked. | The branch must be up to date with the base branch before merging. | This is the default behavior for required status checks. More builds may be required, as you'll need to bring the head branch up to date after other collaborators merge pull requests to the protected base branch. |
Loose | The Require branches to be up-to-date before merging checkbox is not checked. | The branch does not have to be up to date with the base branch before merging. | You'll have fewer required builds, as you won't need to bring the head branch up to date after other collaborators merge pull requests. Status checks may fail after you merge your branch if there are incompatible changes with the base branch. |
Disabled | The Require status checks to pass before merging checkbox is not checked. | The branch has no merge restrictions. | If required status checks aren't enabled, collaborators can merge the branch at any time, regardless of whether it is up to date with the base branch. This increases the possibility of incompatible changes. |
Enabling required status checks
On GitHub Enterprise, navigate to the main page of the repository.
Under your repository name, click Settings.
In the left menu, click Branches.
Under Protected Branches, select the branch you want to mark with a required status check using the drop-down menu.
- Select Require status checks to pass before merging.
- From the list of available status checks, select the ones you want to make required.
Optionally, select Include administrators. This enforces the required status checks on the repository administrators.
Optionally, deselect Require branches to be up to date before merging. If selected, this ensures that the branch is tested with the latest code on the base branch.
- Optionally, select Restrict who can push to this branch.
- Search for and select the people or teams who will have permission to push to the protected branch.
- Click Save changes.
Tip: To successfully merge a pull request into a base branch that has required status checks enabled, the pull request's head branch must be up-to-date with the base branch.