At my office, we frequently find ourselves switching between Git branches and often we forget to run
composer install on the new branch to make sure our vender dependencies are at the proper versions for the branch we changed to.
master is stable and has an older version of a dependency, but a feature branch I’m working on uses an updated version of that dependency.
Let’s say I’m currently working on a feature branch when a bug report comes in and I need to fix the problem ASAP. If I stash my current feature branch’s files, then create a new bug-fix branch off of master, my
composer.lock file is different and my
vendor/ directory still contains the newer version of the dependency. This occasionally causes problems.
A while back I found a helpful script to use as a post-checkout Git hook. Now whenever I switch branches, I get a notification telling me my dependencies are different than the branch I just switched from.
To use this script on a single project, put the following in your project’s
.git/hooks/post-checkout file (create it if it does not already exist). Make sure to set the file permissions to executable.
I prefer to keep the script in my global
git-core/templates/hooks/post-checkout file so it’s accessible for all of my projects. Tip: After installing the file, run
git init in an existing project to update the hooks and bring the global file down locally to your project.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
Please note: This script is modified to properly display color codes on a Mac/BSD system. If you’re on Linux and having display issues, change the instances of
\e and it will work for you.