>My testing demonstrates that `commit-msg` is skipped with `--no-edit --no-verify`, but not `prepare-commit-msg`. Looks like a separate bug though? https://git-scm.com/docs/git-commit#Documentation/git-commit.txt-code--no-editcode says: >Use the selected commit message without launching an editor. For example, git commit --amend --no-edit amends a commit without changing its commit message. Why would the prepare-commit-msg hook be called then? >What I could recommend instead is setting a shell script or PowerShell file or such as the default Git binary (instead of git.exe) and setting `TZ=UTC0` in that script (possibly only if the command is `commit` or `commit-tree`). The IDEs only work with git.exe. If it's not there, it won't run at all. The only thing possible is setting TZ= as a user environment variable however that will obviously be picked up by other applications and cause the weirdest side-effects (e.g. Slack/Electron suddenly start using that time zone for some things but the in-built/setting timezone for others and lots of other inconsistency issues in tons of applications) There's various tickets for various IDEs for this use case, not just for git, but also for npm and various other tools (e.g. people need to change the JAVA version for a tool or whatever) Some time ago I opened "Config timezone to prevent chaos when DST/changing timezone" in the git mailing list and I saw you also replied. But if git had a way to actually set the timezone, these workarounds wouldn't be necessary; alas that's another issue On Wed, 2 Apr 2025 at 00:58, brian m. carlson <sandals@xxxxxxxxxxxxxxxxxxxx> wrote: > > On 2025-04-01 at 03:44:17, Devste Devste wrote: > > >your call to `git commit` will still invoke the > > `prepare-commit-msg` (and possibly `commit-msg`) hook > > > > Since I used --no-edit --no-verify in the example/hook, that shouldn't > > be the case though? > > My testing demonstrates that `commit-msg` is skipped with `--no-edit > --no-verify`, but not `prepare-commit-msg`. > > > >such as by using an alias that sets `TZ=UTC0` to commit. > > > > Unfortunately, (at least on Windows) most tools and IDEs don't even > > load a bashrc file (e.g. intellij) for their git UI, so that's not an > > option (and setting the TZ as a global environment variable has > > unwanted side effects, since it will set the timezone in various > > applications randomly, e.g. Electron/Slack will use the TZ for some > > but not for other things,...) > > What I could recommend instead is setting a shell script or PowerShell > file or such as the default Git binary (instead of git.exe) and setting > `TZ=UTC0` in that script (possibly only if the command is `commit` or > `commit-tree`). I use Neovim with the fugitive extension, and > it provides functionality to override the Git executable, so I suspect > other editors will as well. This is something that will likely be > robust and unlikely to break. > > The reason I make that recommendation is that I suspect you're going to > find that there are other infelicities or weird edge cases in what > you're doing and this would be a use case that I could see getting > broken accidentally. We've accidentally broken people doing `git add` > in `pre-commit` hooks (which we also don't recommend) in the past, for > instance. > -- > brian m. carlson (they/them) > Toronto, Ontario, CA