Skip to main content

This version of GitHub Enterprise Server was discontinued on 2024-09-25. No patch releases will be made, even for critical security issues. For better performance, improved security, and new features, upgrade to the latest version of GitHub Enterprise Server. For help with the upgrade, contact GitHub Enterprise support.

Managing the push policy for your repository

You can limit how many branches and tags can be updated in a single push.

Who can use this feature?

People with admin permissions for a repository can manage the push policy for the repository.

About the push policy

Note: The push policy is currently in beta and subject to change.

By default, there is no limit to the number of branches and tags that can be updated in a single push.

You can limit the number of branches and tags that can be updated in a single push to block potentially destructive pushes. This can prevent or limit the loss of data.

The push policy also blocks the Git command: git push --mirror. This is a potentially destructive command for making the remote exactly match the local clone. When run by accident, it can cause many force-pushes and branch deletions on the remote without any warning.

Limiting how many branches and tags can be updated in a single push

  1. On GitHub, navigate to the main page of the repository.

  2. Under your repository name, click Settings. If you cannot see the "Settings" tab, select the dropdown menu, then click Settings.

    Screenshot of a repository header showing the tabs. The "Settings" tab is highlighted by a dark orange outline.

  3. Under "Pushes", select Limit how many branches and tags can be updated in a single push.

  4. After "Up to", type the number of branches and tags you want to limit in a single push. Lower numbers are more restrictive of which pushes are allowed, and higher numbers are less restrictive but have more potential for being destructive.

    We recommend the default maximum of 5 branch or tag updates allowed in one push. The minimum value is 2, because Git requires two branch updates to rename a branch in a single push: delete branch and create branch.