3 ms·
Heh, I actually looked into that but it's not so easy. See: https://stackoverflow.com/a/3538791/1103543 https://stackoverflow.com/a/3538791/1103543 So even if
by jacobevelyn 9y ago
Heh, I actually looked into that but it's not so easy. See: https://stackoverflow.com/a/3538791/1103543 https://stackoverflow.com/a/3538791/1103543
So even if this script is the absolute first thing in your $PATH, `git blame` will always call the builtin rather than this. There are probably more involved ways to make this happen the way you want (like create a different `git` program that shells everything out to the real one except the `blame` command) but I wasn't sure I wanted to go down that rabbit hole.
Feel free to submit a PR if you find a simpler way though!
- pcthrowaway 9y agoIf they're using bash, it shouldn't be so hard. Just put something like this in your/their bashrc git() { if [[ $1 == blame ]]; then shift git self-blame "${@}" else command git "${@}" fi } edit: this isn't 100% perfect as it won't work (but won't break git either) in situations where the user uses a global flag in addition to blame. I've been using git for years though and the only global flag I've used are --version and --help
- jacobevelyn 9y agoAwesome, thanks for sharing! My Bash skills definitely have lots of room for improvement—I think I learned at least three new things from your comment alone. :) I too had never really used global git flags until they came in very handy for `git self-blame`!