Creates an upstream tracking connection and is especially useful when publishing a local branch on a remote for the first time.
Or in other word:
The -u flag creates a tracking reference for every branch that you successfully push onto the remote repository.