Is `which` lying to me?

Solution 1:

which is telling the truth. Your shell is lying to you.

git is hashed (/usr/bin/git)

means that your shell has cached this location of "git" and is using the cached path rather than searching $PATH again. Use hash -r to clear the cache and make the shell search $PATH for the new git at /usr/local/bin/git