title: Rebase many commits to one in Git. What am I doing wrong?
body: <p>I would like to combine many commits in to one. I have followed the method described at a previous StackOverflow <a href="https://stackoverflow.com/questions/435646/how-do-i-combine-the-first-two-commits-of-a-git-repository">answer</a> which says:</p>
  
  <pre><code># Go back to the last commit that we want to form the initial commit (detach HEAD)
  git checkout &lt;sha1_for_B&gt;
  
  # reset the branch pointer to the initial commit,
  # but leaving the index and working tree intact.
  git reset --soft &lt;sha1_for_A&gt;
  
  # amend the initial tree using the tree from 'B'
  git commit --amend
  
  # temporarily tag this new initial commit
  # (or you could remember the new commit sha1 manually)
  git tag tmp
  
  # go back to the original branch (assume master for this example)
  git checkout master
  
  # Replay all the commits after B onto the new initial commit
  git rebase --onto tmp &lt;sha1_for_B&gt;
  
  # remove the temporary tag
  git tag -d tmp
  </code></pre>
  
  <p>I assume that B in the above code block is the oldest commit.</p>
  
  <p>Here is what happens to me:</p>
  
  <pre><code>$ cd rebase-test
  $ git branch
    gui
  * master
  $ git log --pretty=oneline
  7391d1b8e51b766190794ede49e3338307a64225 Merge branch 'gui'
  c69d44b0d3615d4f537ca42fe67ee58e2728a31a Work in progress. Next port transform()
  e710a839c5aee0b07178da1f97999fa6dba445d6 audio_load() implemeted in callback.c
  ...
  $ git checkout c69d44b0d3615d4f537ca42fe67ee58e2728a31a
  Note: moving to 'c69d44b0d3615d4f537ca42fe67ee58e2728a31a' which isn't a local branch
  If you want to create a new branch from this checkout, you may do so
  (now or later) by using -b with the checkout command again. Example:
    git checkout -b &lt;new_branch_name&gt;
  HEAD is now at c69d44b... Work in progress. Next port transform()
  $ git reset --soft 7391d1b8e51b766190794ede49e3338307a64225
  $ git commit --amend
  [detached HEAD ad4e92a] new
  $ git tag tmp
  $ git checkout gui
  Previous HEAD position was ad4e92a... new
  Switched to branch 'gui'
  $ git rebase --onto tmp c69d44b0d3615d4f537ca42fe67ee58e2728a31a
  First, rewinding head to replay your work on top of it...
  Applying: Removed build files
  Applying: Removed more build files
  Applying: Fixed infile_handler crash
  /home/louise/rebase-test/.git/rebase-apply/patch:90: space before tab in indent.
          for(int j = 0; j &lt; data-&gt;audio_info_load-&gt;channels; j++) {
  /home/louise/rebase-test/.git/rebase-apply/patch:91: space before tab in indent.
            if(j == selected_channel) {
  /home/louise/rebase-test/.git/rebase-apply/patch:92: space before tab in indent.
              data-&gt;mono_channel[while_counter * const_frames_read + i] = bufferIn[i * data-&gt;audio_info_load-&gt;channels + selected_channel];
  /home/louise/rebase-test/.git/rebase-apply/patch:93: space before tab in indent.
            }
  /home/louise/rebase-test/.git/rebase-apply/patch:94: space before tab in indent.
          }
  warning: 5 lines add whitespace errors.
  Applying: sf_readf_double() crashes
  Applying: Crash fixed
  Applying: Created audio_load()
  /home/louise/rebase-test/.git/rebase-apply/patch:73: space before tab in indent.
          for(int j = 0; j &lt; data-&gt;audio_info_load-&gt;channels; j++) {
  /home/louise/rebase-test/.git/rebase-apply/patch:74: space before tab in indent.
            if(j == selected_channel) {
  /home/louise/rebase-test/.git/rebase-apply/patch:75: space before tab in indent.
              data-&gt;mono_channel[while_counter * const_frames_read + i] = bufferIn[i * data-&gt;audio_info_load-&gt;channels + selected_channel];
  /home/louise/rebase-test/.git/rebase-apply/patch:76: space before tab in indent.
            }
  /home/louise/rebase-test/.git/rebase-apply/patch:77: space before tab in indent.
          }
  warning: 5 lines add whitespace errors.
  Applying: Clean up
  /home/louise/rebase-test/.git/rebase-apply/patch:58: trailing whitespace.
  
  /home/louise/rebase-test/.git/rebase-apply/patch:60: trailing whitespace.
  
  /home/louise/rebase-test/.git/rebase-apply/patch:67: trailing whitespace.
  
  /home/louise/rebase-test/.git/rebase-apply/patch:72: trailing whitespace.
  
  /home/louise/rebase-test/.git/rebase-apply/patch:80: trailing whitespace.
  
  warning: squelched 11 whitespace errors
  warning: 16 lines add whitespace errors.
  Applying: transform_inv() implemented
  /home/louise/rebase-test/.git/rebase-apply/patch:115: trailing whitespace.
    free(data-&gt;mono_channel); 
  warning: 1 line adds whitespace errors.
  Applying: audio_save() crash
  Applying: Crash fixed
  Applying: Backend finally implemented in gui.
  $ git tag -d tmp
  Deleted tag 'tmp'
  </code></pre>
  
  <p>I get the same error, when I assume that A is the oldest.</p>
  
  <p>Can someone see what's going wrong?</p>
  
  <p>Hugs,
  Louise</p>
  
  <p><strong>Edit:</strong> I have updated the output, so it shows what happens when I continue.</p>