I've got a project repo that includes some submodules. In one of my submodules, I checked out a different commit. Neither the original repo nor the submodule have any changes.
Once you get in this situation, you cannot change branches.
For example, I am in "develop" branch, and I want to switch to "main".
In Xcode, I control-click the "main" branch and choose "Check-out". This fails with an error that says, "The working copy has conflicting, uncommitted changes. Commit or discard the changes and try again."
However, if I go to the Source Control menu and choose "Discard All Changes...", I get an error, "Cannot Discard Changes. There are no uncommitted changes in the working copies for this project."
The Source Control Navigator, under Changes, under Local Changes, shows the submodule with a "?" as the status.
It looks to me that Xcode 13 is confused by the submodule -- in one spot setting that changes exist, in another, acting as if there are no changes.
Am I missing something?