After upgrading to 2.20.1 I noticed in some submodule+worktree scenarios git will break the submodule configuration. Reproducible with: git init a && (cd a; touch a; git add a; git commit -ma) git init b && (cd b; git submodule add ../a; git commit -mb) git -C b worktree add ../b2 git -C b/a worktree add ../../b2/a git -C b status git -C b2 submodule update git -C b status The submodule update in the _worktree_ puts an invalid core.worktree value in the _original_ repository submodule config (b/.git/modules/a/config), causing the last git status to error out with: fatal: cannot chdir to '../../../../../../b2/a': No such file or directory fatal: 'git status --porcelain=2' failed in submodule a Looking at the config file itself, the submodule update operation applies the following change (the new path is invalid): - worktree = ../../../a + worktree = ../../../../../../b2/a This worked fine on 2.19.2 (no config change, no error), and was useful to have a worktree with (large) submodules that are also worktrees. Bisects down to: 74d4731da1 submodule--helper: replace connect-gitdir-workingtree by ensure-core-worktree -- Tomasz Śniatowski