Everyone, I wanted to throw up a quick post, in hopes that it can prevent someone from making the some dumb mistake as I did. Like many of you, I am used to working on branches and pushing changes to remote branches (see github). Yesterday I was doing some work on LSST-dev (where normally I use my laptop) and force pushed my branch, as I wanted to overwrite the older work done on the branch. To my horror, git force pushed all the branches that I had checked out, including master. This forced master to be reverted back to the state it was the last time I had pulled, erasing peoples changes. Why did this happen? We I am so used to the default behavior of git 2.x where it will only push based on the current branch you are working on. LSST-Dev has git version 1.9.(3/4) from 2014. Git versions prior to 2.x synchronize all branches when you push by default. This behavior can be changed by putting
[push]
default = simple
into your .gitconfig file. Other people may have different workflows, but I just wanted to give people a heads up, lest this happen to them, especially for anyone new to get who may be used to the behavior they see on their personal systems.