title: can I delete a whole branch from a git repo?
body: <p>I'm not just talking about the branch pointer :-)</p>
  
  <p>Say I have a already fully merged branch, and now I want to make it look like that branch never existed. It seems to me I should be able to completely prune that branch from the repo (i.e. delete all the commits on that branch so it never shows in the history) without sacrificing the integrity. Is there any way to do that?</p>
  
  <p>Would it be possible to push the remaining branch upstream without pushing the one i'd rather forget?</p>
  
  <p>EDIT: I've added in an example to try and illustrate this better</p>
  
  <pre><code>git checkout master
  git commit -m "C1"
  git branch b1
  git commit -m "C2"
  git checkout b1
  git commit -m "C3"
  git checkout master
  git merge -m "C4" b1
  git branch -d b1
  </code></pre>
  
  <p>gives this result</p>
  
  <pre><code>--C1--+----C2----+--C4
         \        /
          +--C3--+
  </code></pre>
  
  <p>what I want to do is delete C3 but leave C4 exactly as it is, so that the history looks linear. It seems to me the sha-1 of C4 will be the same whether or not C3 is there, so I don't understand why I should need to rebase/cherry pick to do it</p>