Are you tired of git NOT just pushing your branch and instead first asking to set origin for every new branch ? Well, here is a command that can help you: git push 2>&1 >/dev/null | tail -2 | grep 'git push' | awk '{split(\$0,a,\" \"); print a[5]}' | xargs -I{} git push --set-upstream origin '{}' What this will do is first try `git push` and if there is an error it will get branch name and run git push — set-upstream origin branch-name.