Hey folks, just posting this here on the off chance (1) you're working in a similar pattern or (2) there is any hope of recovery. I'm about 0% confident 2 is possible, so this is probably a cautionary tale.
I have a "hyper-repo" that I use to pull down a number of related repositories and work on them. Each repository is a submodule. Each repository, including the hyper-repo, is on Github.
I just spent 6 hours working on code and committing to the submodule for one of my projects, but was unable to push because of the error "fatal: remote part of refspec is not a valid name in (no branch):(no branch)". Changing branches didn't seem to affect anything, and opening the repository individually (instead of clicking through from the hyperproject) didn't make a difference.
I tried restarting SourceTree. I figured Git is supposed to be super stable. I figured there's no way it'd ever just up and delete files that are committed to the repo without me directly doing so, right?
Restarting and opening the hyperproject again and trying to pull seems to have rolled back the submodule *entirely*. All of my commits are just... gone.
Now, I have a new branch of the submodule named "HEAD" that I cannot switch to and cannot delete. It lists this under remotes (origin/HEAD) but that branch does not appear on Github.
I didn't heed all the warnings out there about how bad submodules are and decided the convenience was worth the finnicky way they work. Whoops. =/
Supported Platforms macOS Windows We recently introduced support for additional hosting services such as GitHub Enterprise, GitLab (Cloud, Community Edition, Enterprise Edition), and...
Connect with like-minded Atlassian users at free events near you!Find an event
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no Community Events near you at the moment.Host an event
You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events