Git is powerful but its relatively terse and obtuse api can make it hard to be sure what commands are really doing. Here are a couple pitfalls I've found over the years with git push that it's good to be aware of.
Pushing the wrong thing
You're probably familiar with git push but do you know all the assumptions that calling it without arguments is making?
git push is sugar for git push [default remote] HEAD:[HEAD's upstream branch]. So if your local branch's upstream is set to say 'master' you could accidentally overwrite master.
You can adjust the default behavior for git push by setting the push.default git config
Another trap is git push origin branch_name. It expands to git push origin branch_name:branch_name so if you're not on branch_name and you expect to push your current branch to remote branch_name you may be surprised (ask me how I know!).
Deleting a remote branch on accident
Here's a typo that can burn you hard
DON'T RUN THIS: `git push origin :branch_name'
You may assume that this means push your current branch up as "branch_name" but noooo, it actually will replace the remote branch with nothing, deleting the branch.
Top comments (0)