Let me try to explain it  :)
- -ujust a shorthand of- --set-upstream
It means for every branch that is up to date or successfully pushed, 
add upstream (tracking) reference so that you can just type the command git push your-branch-name to push without specifying the remote. Otherwise, it doesn't know where you want to push.
git push -u is same as git push --set-upstream
Once you set up the upstream, the "upstream" configuration will be saved to git-config and you no need to tell Git anymore about the upstream of this branch.
So you just need to execute it once.
After that, you may just simply push the branch using git push your-branch or git push for the current branch.
Hope this can help!