Git: Run through a filter before commiting/pushing?

Is there a way to run the changed files through a filter before doing the commit? I wish to make sure the files follows the coding standards for the project.

I would also like to compile and run some test before the commit/push actually takes place, so I know everything in the repo actually works.

  • Why are some functions declared extern and header file not included in source in Git source code?
  • Should commit messages be written in present or past tense?
  • Why maintain traditional detailed ChangeLog in modern world (with SVN, Mercurial, Git)?
  • Ensure coding-style during a git commit
  • How to accommodate multiple coding styles? (git vs. IDE)
  • Where to hook a coding convention script?
  • How do I configure remote refs for git + capistrano 3 in ROR deployment?
  • Using a private git repository with Stack
  • Heroku push rejected, Could not communicate with vendor, please try again later
  • Is there a way to commit changes to multiple branches without stashing?
  • git ls-files with date?
  • git clean not working recursively
  • 2 Solutions collect form web for “Git: Run through a filter before commiting/pushing?”

    Pre-commit hooks. Read up on git hooks. The Git Book has an example of how to write a Ruby script to run RSpec tests, for instance.

    You just save the executable as .git/hooks/pre-commit – using a hashbang to specify the language. It is just an ordinary shell script, although you can use any scripting language, so long as it returns 1 if there is a problem and 0 if there isn’t.

    For the filter part, I would recommend a smudge/clear driver, with the ‘clear’ script containing all the formatting or checking you need (executing on commit)

    filter driver

    You can declare this git attribute filter driver only for certain types of files, only for certain directories within your repo.

    Git Baby is a git and github fan, let's start git clone.