Background
I'm working with a large team using git for version control. The normal flow is:
- People selecting a ticket from the "backlog queue".
- Working on the issue via a local branch (i.e. git checkout -b my_feature_branch).
- Making several commits as they go (i.e. git commit).
- Pushing local changes to a remote branch in order to "backup" their work so it lives on more than one machine, in case the laptop is damaged or stolen (i.e. git push -u origin my_feature_branch).
- Eventually creating a code review on our private  github page, and doing a squashed merge from the feature branch to github page, and doing a squashed merge from the feature branch tomaster.
In addition to the remote feature branches created by employees on an as-needed basis, we have several dozen release branches that are used to create the "gold builds" we ship to customers, i.e. 1.00, 1.01, 2.00, 2.01, 2.02, etc.
Problem
Some developers have begun to complain that there are too many branches, and I tend to agree. Some developers haven't been diligent about cleaning up old branches when they are no longer needed (even though  github provides a one-button delete feature for this once the code review is complete).
github provides a one-button delete feature for this once the code review is complete).
Question
Is there a way to configure our company  github deployment so that, when people use
github deployment so that, when people use git branch via the CLI:
- Only our "important/release/gold" branches appear.
- The one-off developer (temporary) branches only appear via git branch -a?
The main goal of this is to reduce clutter.
Edit: I found a similar question, but the only answer is not at all applicable (don't use remote branches), which violates my key constraint of allowing people to push to remote branches as a form of data backup. The concept of private namespaces, as hinted by @Mort, seems to be exactly what I'm looking for. Now, how do I accomplish that?
 
     
     
    