Já lhe deve ter ocorrido o caso de que seu fork precisa de um branch que foi criado somente no repositório principal, mas no seu não é possível encontrar.

A solução para os seus problemas é a configuração correta de seu upstream, Vamos lá?

Qual o motivo de configurar um Upstream?

Ao efetuar um fork seu novo repositório vai ter um endereço de origin que é o seu próprio link do novo repositório, como exemplo myname/myfork, com isso ao efetuar os comandos básicos push e pull, eles serão efetuados nessa origem.

Mas trabalhando em equipes é necessário além do meu repositório, ter o repositório remoto para conseguir copiar possíveis implementações dos meus colegas. E então assim é necessário a configuração do upstream para linkar o meu fork com o repositório remoto.

Abra seu terminal

Na raiz de seu projeto vá até seu branch master.

$ git checkout master

Verifique se seu repositório possui um upstream executando esse comando.

$ git fetch upstream

Se retornar fatal: ‘upstream’ does not appear to be a git repository é necessário efetuar os seguintes passos.

Vá até o repositório que você efetuou o fork e copie o link ssh ou https para colar no comando.

$ git remote add upstream https://github.com/user/repo.git

Para confirmar use o comando

$ git remote -v

Esse comando deve retornar algo como isso:

origin      https://github.com/myuser/repo.git (fetch)  
origin      https://github.com/myuser/repo.git (push)  
upstream    https://github.com/user/repo.git (fetch)  
upstream    https://github.com/user/repo.git (push)

Agora o comando abaixo deve ser executado sem erros.

$ git fetch upstream

E finalmente para copiar um branch remoto para um novo branch.

$ git checkout -b newbranchlocal upstream/branchremoto

Para efetuar merge de um branch remoto com um seu já existente, basta usar a referência upstream/branchremoto

$ git merge upstream/branchremoto

Nesse caso não esqueça de estar no branch correto antes do merge.