These are basic workflows to get started. Refine and amend as necessary.
N.B. you can set up git global config so that local branches with the same name as the remote branch will automatically track so no need to specify upstream step via -u (same as --set-upstream). However for the sake of being explicit I have retained the upstream step.
git config --global --add push.default current
git config --global --add push.autoSetupRemote true