One "gotcha" when starting with Git is the way in which it pushes branches by default. On older versions of Git, pushing without arguments would push all branches that have the same name both locally and remotely. This can result in unexpected behaviour if you have old branches that complain when the remote branch is updated. It can even be quite dangerous if you do a force push and it reverts changes on the server. You can see the current value by running:
If this value is blank or 'matching', it is our recommendation that you reconfigure it to use 'upstream'.
There has been some discussion around changing the default behaviour of Git.