Skip to content

Instantly share code, notes, and snippets.

@Xtremrules
Forked from Simbul/pre-commit
Created June 4, 2016 16:28
Show Gist options
  • Save Xtremrules/5c853a2e831ce03e745622b844ce88d1 to your computer and use it in GitHub Desktop.
Save Xtremrules/5c853a2e831ce03e745622b844ce88d1 to your computer and use it in GitHub Desktop.
Git hook to prevent commits on a staging/production branch
#!/usr/bin/env ruby
# This pre-commit hook will prevent any commit to forbidden branches
# (by default, "staging" and "production").
# Put this file in your local repo, in the .git/hooks folder
# and make sure it is executable.
# The name of the file *must* be "pre-commit" for Git to pick it up.
FORBIDDEN_BRANCHES = ["staging", "production"]
def current_branch()
branches = `git branch --no-color`.split(/\n/)
current = branches.select{ |b| b =~ /\s*\*/ }.first
current.gsub(/[\*\s]/, "")
end
branch = current_branch
if (FORBIDDEN_BRANCHES.include?(branch))
puts
puts " STOP THE PRESS!"
puts " You are trying to commit on the *#{branch}* branch."
puts " Surely you don't mean that?"
puts
puts " If you really do, force the commit by adding --no-verify to the command."
puts
exit 1
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment