4

My use case:
I have a project where I have to add one line of code so it runs on my machine. Before committing and pushing it I have to remove this line of code again.
I often forget this so I was wondering if I could write a tool where I can "raise a flag", which prevents me to commit or to push a commit until I "remove" the flag again.
Is there a way to create some kind of lock file or set a setting so that git bash refuses my commit/push?

DerOta
  • 128
  • 7

1 Answers1

3

You can create a pre-commit hook by placing a file with execute permissions in .git/hook/pre-commit.

This script could check if the line exists, and if so, return a non zero exit code and thus abort the commit:

#!/bin/sh

if grep -q '^Line to remove$' myfile.txt; then
  echo 'You forgot to remove the line from myfile.txt'
  exit 1
fi

You could similarly do this in pre-push hook by placing the file at .git/hook/pre-push.

You could also have the hook forcefully remove this line and add then git add this file, although I personally wouldn't like a hook automatically staging files I didn't intend to.

Mureinik
  • 297,002
  • 52
  • 306
  • 350