title: Can I map local branches to remote branches with different prefixes in git?
body: <p>We're working with a semi-centralized git repository here where I work. Each developer has their own subtree in the central git repository, so it looks something like this:</p>
  
  <pre>master
  alice/branch1
  alice/branch2
  bob/branch1
  michael/feature
  release/1.0
  release/1.1</pre>
  
  <p>Working locally in my tree I have <code>topic/feature</code>, which corresponds to <code>michael/feature</code> in the central tree.</p>
  
  <p>I've been using</p>
  
  <pre><code>git push origin topic/feature:michael/feature
  </code></pre>
  
  <p>to push my changes to the remote tree. However, this is cumbersome and prone to mistakes (e.g. omitting the developer name, misspelling the feature name, etc.).</p>
  
  <p>I'm looking for a cleaner way to do this. For instance, "<code>git push</code>". I suspect that setting a different remote with a modified fetch refspec will do it, but I'm not sure how exactly to do it. I'm also not sure how to modify my current branch definitions to use the different remote.</p>
  
  <p>My current <code>.git/config</code> looks something like:</p>
  
  <pre>[remote "origin"]
      url = git://central/git/project
      fetch = +refs/heads/*:refs/remotes/origin/*
  [branch "topic/feature"]
      remote = origin
      merge = refs/heads/michael/project</pre>
  
  <p><strong>Edit:</strong> I'd also like to apply this to pulls/fetches. But does the <code>branch.&lt;name&gt;.merge</code> take care of that?</p>
  
  <p>I'll continue to research this and post here if I find something, but I'm hoping to get some other good ideas.</p>
  
  <p><strong>Edit 2:</strong> I've decided I'll keep local and remote branch names the same. It appears it will be the least work and least prone to future problems.</p>