Salut,
Je vais essayer, mais je ne suis pas sûr de bien répondre. Au pire, ça
1) Concrètement, si tu veux que ton master de fork soit au plus proche du master de l'upstream, tu vas plutôt rebaser sur upstream. Mais rien ne t'y oblige.
Bon, en pratique, si tu travailles sur un fork, c'est certainement souhaitable d'essayer de faire que ton master local=fork/master github=upstream/master pour pas se faire des noeuds au cerveau et de mettre les différences dans des branches.
2) Rien n'est automatique.
Tu ajoutes donc effectivement upstream pour pouvoir merger ou rebaser ton travail sur celui-ci.
Ensuite, si tu le souhaites, tu vas faire un nouveau push vers ton fork quand tu le souhaites.
A priori, perso j'essaie de suivre upstream, donc je rebase le plus souvent :
$ git remote add upstream ...
$ git checkout master
$ git fetch upstream
$ git rebase upstream/master
$ git push origin master // synchroniser ton fork/master
-- Baptiste