On Thu, Sep 04, 2025 at 02:46:13PM +0200, Devste Devste wrote: > For some reason neither environment variables nor -c is passed to the > prepare-commit-msg hook when rebasing. > Other parameters (e.g. -C /path/to/repo) are passed correctly/it's > running the command in the correct repo If the environment is being cleared, then that would explain "-c" as well, since it passes through the environment. However, I can't reproduce the problem here. This is my full recipe: -- >8 -- git init git checkout main echo base >file && git add file && git commit -m base echo main >>file && git commit -am main git checkout -b side HEAD^ echo side >>file && git commit -am side cat >.git/hooks/prepare-commit-msg <<\EOF #!/bin/sh echo "in prepare-commit-msg hook" echo "FOO: $FOO" echo "config: $(git config --get hooks.foobar)" exit 1 EOF chmod +x .git/hooks/prepare-commit-msg git rebase main echo resolved >file git add file FOO=bar git -c hooks.foobar=hello rebase --continue -- >8 -- The final command produces: in prepare-commit-msg hook FOO: bar config: hello error: could not commit staged changes. which is what I'd expect. Do you get the same thing? If not, then I wonder what could be different between our environments. If so, then I wonder what is different from your earlier testing. :) -Peff