SourceTree/Git deletes 6 hours of commits to submodule

Karl Gluck October 8, 2017

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?

HUGE mistake.

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. =/

0 comments

Comment

Log in or Sign up to comment
TAGS
AUG Leaders

Atlassian Community Events