git hook question
- From
Wesley Schwengle <wesleys@opperschaap.net>
- Date
- May 29, 2026, 05:01 UTC
- Message-ID
- <cc9fda14-d8e8-4982-9a3d-9aa816c0b90c@opperschaap.net>
Hello,
I added the following to my gitconfig:
hook.npm-test.event=pre-push hook.npm-test.command=npm run test
This works well when I run `git hook run pre-push' but when using `git push' this breaks a little because it adds the remote and the location, as seen via `GIT_TRACE=1 git push origin':
00:46:53.714453 run-command.c:673 trace: run_command: 'npm run test' origin git@gitlab.com:waterkip/mything.git 00:46:53.714458 run-command.c:765 trace: start_command: /bin/sh -c 'npm run test "$@"' 'npm run test' origin git@gitlab.com:waterkip/mything.git
I understand the why, normally pre-push gets `<local-ref> SP <local-object-name> SP <remote-ref> SP <remote-object-name> LF'. This has a similar feel, albeit a different syntax. The difference feels like a minor bug, but not one I'm worried about at this moment: you would expect it to get the same arguments/parameters as the regular pre-push hook. But I digress.
My actual question is: Is there a way to tell the hook "Don't give me arguments, just run the plain command that is defined". I looked in `man 1 git-hook', but I was unable to find something that looks like it.
Cheers, Wesley
-- Wesley Schwengle