Useful snippets

    prepush / git hooks

    2026-02-25

    To activate pre-push, rename .git/hooks/pre-push.sample to .git/hooks/pre-push


    Example script:

    GREEN='\033[0;32m'
    RED='\033[1;91m'
    RESET='\033[0m'
    

    branch_name="$(git branch --show-current)" allowed_branch_name="my-branch"

    if [ "$branch_name" != "$allowed_branch_name" ]; then echo "Current branch: ${RED}${branch_name}${RESET}" echo "Allowed branch: ${GREEN}${allowed_branch_name}${RESET}" echo echo "You can't push directly to this branch." exit 1 fi

    Check if a file exists (pre-push example)

    2026-03-03

    Bash

    Check existence

    lpo() {
      if [[ -f ".git/hooks/pre-push" ]]; then
        echo ".git/hooks/pre-push was found:"
        echo "pre-push is activated"
      else
        if [[ -f ".git/hooks/pre-push.sample" ]]; then
          echo ".git/hooks/pre-push was not found:"
          echo "but .git/hooks/pre-push.sample was found:"
          echo "pre-push is deactivated"
        else
          echo "Hmmmmm"
        fi
      fi
    }

    Nvim edit file

    po() {
      if [[ -f ".git/hooks/pre-push" ]]; then
        echo ".git/hooks/pre-push was found:"
        nvim .git/hooks/pre-push
      else
        if [[ -f ".git/hooks/pre-push.sample" ]]; then
          echo ".git/hooks/pre-push was not found:"
          echo "but .git/hooks/pre-push.sample was found:"
          nvim .git/hooks/pre-push.sample
        else
          echo "Hmmmmm"
        fi
      fi
    }

    Lua nvim edit file

    function file_exists(name)
       local f=io.open(name,"r")
       if f~=nil then io.close(f) return true else return false end
    end
    

    function open_prepush() if file_exists(".git/hooks/pre-push") then vim.cmd("vsplit .git/hooks/pre-push") elseif file_exists(".git/hooks/pre-push.sample") then vim.cmd("vsplit .git/hooks/pre-push.sample") else vim.cmd("echo 'Hmmmmm'") end end

    vim.keymap.set("n", "<leader><leader>po", open_prepush, { desc = "Open pre-push a new split" })