Ooops, Repointing Git Head
I screwed up. I force pushed a branch but I forgot to tell git which branch to push so it clobbered another branch.
C:\code\project [feature/feature27]> git push -f
Password for 'http://simon@remote.server.com:7990':
Counting objects: 63, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (61/61), done.
Writing objects: 100% (63/63), 9.25 KiB | 0 bytes/s, done.
Total 63 (delta 50), reused 0 (delta 0)
To http://simon@remote.server.com:7990/scm/ev/everest.git
+ 0baa5b8...e9a1c19 develop -> develop (forced update) <--oops!
+ dbe6fce...5557ae7 feature/feature27 -> feature/feature27 (forced update)
Drat, since I hadn’t updated develop in a few hours there were a bunch of changes in it that I just killed. Fortunately I know that git is really just a glorified linked list and that nothing is ever deleted. I just needed to update where the head pointer was pointing. I grabbed the SHA of the latest develop commit from the build server knowing that it was late at night and nobody else was likely to have snuck a commit into develop that the server missed.
Then I just force updated my local develop and pushed it back up
git branch -f develop bbff5b810a19383fb11950a5d1e36676dd3ca85d <-- sha from build server
git push
All was good again.