Title: Git - How to prevent a branch to be pushed | |
Author: Solène | |
Date: 08 September 2022 | |
Tags: git versioning unix | |
Description: In this article, you will learn how to use git hooks to | |
prevent a branch from being pushed. | |
# Introduction | |
I was looking for a simple way to prevent pushing a specific git | |
branch. A few searches on the Internet didn't give me good results, so | |
let me share a solution. | |
# Hooks | |
Hooks are scripts run by git at a specific time, you have the "pre-" | |
hooks before an action, and "post-" hooks after an action. | |
We need to edit the hook "pre-push" that happens at push time, before | |
the real push action taking place. | |
Edit or create the file .git/hooks/pre-push: | |
```shell | |
#!/bin/sh | |
branch="$(git branch --show-current)" | |
if [ "${branch}" = "private" ] | |
then | |
echo "Pushing to the branch ${branch} is forbidden" | |
exit 1 | |
fi | |
``` | |
Mark the file as executable, otherwise it won't work. | |
In this example, if you run "git push" while on the branch "private", | |
the process will be aborted. |