I ran into an issue where 'git rev-parse --show-toplevel' is reporting the current directory instead of the root of the repository. In my case I'm running it from within the pre-commit hook, and it seems like it might be related to GIT_DIR being set. It may also be related to using worktrees. Haven't had a chance to test thoroughly. Regards, -Andrew Git Version - 2.25.0 pre-commit hook #!/bin/bash env pwd git rev-parse --show-toplevel cd subdir pwd git-rev-parse --show-toplevel Create a repo with a subdirectory. Commit as normal. Output from the hook looks as expected. Create a worktree, and commit there and it appears as though it is returning incorrect results after changing directory. Git repo is in /tmp/revparse_test Worktree is in /tmp/revparse_test_worktree Committing in /tmp/revparse_test yields the below, as expected /tmp/revparse_test /tmp/revparse_test /tmp/revparse_test/subdir /tmp/revparse_test Committing in the worktree yields below, with the final line seeming incorrect. /tmp/revparse_test_worktree /tmp/revparse_test_worktree /tmp/revparse_test_worktree/subdir /tmp/revparse_test_worktree/subdir