Reject Force Push Prehook

I have installed the "Reject Force Push" prehook under a stash git repository and its enabled. But I am still able to execute git push --force command to delete the branches from git bash. What am I doing wrong? I am looking for a certain role to push / merge changes but not rewrite history / delete a particular branch. Stash "WRITE" access seems to provide git push with force push rights. I am trying to setup similar security in Stash and there seems to be out of box pre-hook available that might do the trick but probably I am missing some configuration.

1 answer

Hi Kabir,

That doesn't sound right. Just to confirm you're talking about the default Reject Force Push hook that's shipped with Stash (that has the Darth Vadar icon)?

When you say "deleted" do you mean force pushed, or actaully removed? The force push hook will only stop the former, branches can still be deleted.

There's no extra configuration required, and it may mean something is wrong on the server:

Ignore the title, it may be same underlying problem. You may want to raise a support ticket and attach the support zip so we can take a closer look.


Charles, we are conducting Stash POC using trial version now. One of our requirements is to push changes but to restrict history rewrites and branch deletions for certain roles. So considering GITFlow traditional model, as an example: developer could have access to push changes to remote "develop" integration branch but not delete it. Gerrit provides advanced branch security to handle it.

I am successfully able to test pre-receive hook "Protect unmerged branch hook" as a use case but still not able to test "Reject Force Push hook". I dont know what I am doing wrong...... When I execute the command "git push --force" for any branch, I am still able to force push successfully. Any help is appreciated !!!

Hi Kabir,

That's very strange. I would probably expect all of the hooks to work or not. I've not seen the reject force push hook fail like that.

You're not pushing to your fork or something downstream are you? Hook settings are per repository and aren't inherited.

Would you be able to attach the output of the force push and a screenshot of the enabled hook? Feel free to do that here or on a support ticket (or both).


I am able to run the plugin successfully and go through the use case.

Charles, Is there a plugin available in marketplace to restrict branch deletion but allow users to create branches or push changes to it.

Hi Kabir... Even i am facing the same issue where the "Reject Force Push" plugin does not seem to be working. What changes did you do for it work for you. Thanks Vijay

Suggest an answer

Log in or Sign up to answer
Atlassian Community Anniversary

Happy Anniversary, Atlassian Community!

This community is celebrating its one-year anniversary and Atlassian co-founder Mike Cannon-Brookes has all the feels.

Read more
Community showcase
Piotr Plewa
Published Dec 27, 2017 in Bitbucket

Recipe: Deploying AWS Lambda functions with Bitbucket Pipelines

Bitbucket Pipelines helps me manage and automate a number of serverless deployments to AWS Lambda and this is how I do it. I'm building Node.js Lambda functions using node-lambda&nbsp...

1,739 views 1 5
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you