To answer very shortly, "It is intended" Reason: I don't exactly know if I am pointing to the right code lines But if you dig into builtin/add.c you will find these lines /* * Check the "pathspec '%s' did not match any files" block * below before enabling new magic. */ parse_pathspec(&pathspec, 0, PATHSPEC_PREFER_FULL | PATHSPEC_SYMLINK_LEADING_PATH, prefix, argv); If you read the comment you will know this is already intented (the behaviour which you described) - Jayatheerth