Hi Felix, On Fri, 4 Nov 2016, Felix Nairz wrote: > Now, to the unexpected part, which I think is a bug: > > If the TestData folder is there, but empty (I deleted all the files), > then running > > git -C .\TestData reset --hard > > will NOT throw me an error but run > > git reset --hard > > on the git repository (not the submodule in the sub-directory!), > without warning, or error. I *think* that this is actually intended. Please note that -C is *not* a synonym of --git-dir. It is more of a synonym of cd .\TestData git reset --hard In other words, you probably expected -C to specify the top-level directory of a worktree, and you expected Git to error out when it is not. Instead, Git will treat -C as a directory *from where to start*; It *can* be a subdirectory of the top-level directory of the worktree. Please note that git --git-dir=.\TestData\.git reset --hard will not work, though, as it mistakes the current directory for the top-level directory of the worktree. What you want to do is probably git -C .\TestData --git-dir=.git reset --hard This will tell Git to change the current working directory to the top-level of your intended worktree, *and* state that the repository needs to be in .git (which can be a file containing "gitdir: <real-git-dir>", which is the default in submodules). If the repository is *not* found, this command will exit with a failure. Ciao, Johannes