title: Use git rev-list to exclude a branch, but keep common ancestors with the included branches
body: <p>Say I have the following git repo:</p>
  
  <p><img src="https://i.stack.imgur.com/zwmc1.png" alt="--all"></p>
  
  <p>I want to specify a git rev-list of all branches (<code>--all</code>) but excluding a given branch (say, <code>feature-D</code>), but I want to <em>show</em> common ancestors of <code>feature-D</code> and the other branches i.e. commit <code>Initial</code> and <code>1</code>.</p>
  
  <p>If I try <code>git rev-list --all ^feature-D</code> commits <code>Initial</code> and <code>1</code> are excluded:</p>
  
  <p><img src="https://i.stack.imgur.com/4kLH9.png" alt="--all ^feature-D"></p>
  
  <p>Of course I can list all branches except for <code>feature-D</code> explicitly (<code>git rev-list feature-A feature-B feature-C</code>) to get what I want:</p>
  
  <p><img src="https://i.stack.imgur.com/weyYZ.png" alt="feature-A feature-B feature-C"></p>
  
  <p>But is there a way to specify a rev-list that obtains the prior result, only by reference to <code>feature-D</code>?</p>
  
  <p>(Note that this question was inspired by this answer: <a href="https://stackoverflow.com/a/20978568/430128">https://stackoverflow.com/a/20978568/430128</a>)</p>