O comportamento padrão do Git é enviar todos os branches para que tenham o mesmo nome no controle remoto, então se você estiver trabalhando em um branch e quiser empurrá-lo, você precisa ser específico, caso contrário ele também irá enviar o master (ou qualquer outro branch), que geralmente não é o que você deseja.
A maneira de corrigir isso é definir a configuração do git ‘push.default’ como ‘upstream’:
git config --global push.default upstream
Com este “git push” irá sempre enviar apenas o branch atual e o branch upstream definido, que você precisa definir manualmente uma vez, mas é fácil e indolor.
Se você estiver enviando um novo branch, configure o upstream com -u no primeiro envio que você fizer:
git push -u origin branch_name
Eu normalmente defino o nome do branch como o mesmo do branch local, se você tiver a conclusão do bash, você pode apenas digitar tab.
Se você estiver verificando um branch existente de forma remota:
git checkout -t origin/branch_name
Se você usa o git mais recente, pode até fazer:
git checkout branch_name
E você também verá a configuração do rastreamento:
Branch branch_name set up to track remote branch branch_name from origin.