title: Git pushing and pulling can't be "fast-forward" in bonobo git server
body: <p><a href="https://stackoverflow.com/questions/9483679/basic-windows-git-server-for-fully-syncing-clients-including-all-tags-and-branc">I've got bonobo git server</a> that's supposed to "handle syncing" among at least 2 machines, for now.</p>
  
  <p>It was working fine but lately I've ran into one big problem with it and a related second one with git itself:</p>
  
  <ol>
  <li><p>I can't simply push from each client into it without getting the faded "non-fast-forward" issue, and though <a href="http://forum.chodounsky.net/viewtopic.php?f=13&amp;t=116" rel="nofollow noreferrer">I believe it's an issue with bonobo and bare servers, its creator begs the differ, briefly</a>.</p>
  
  <p>The following is not a copy paste, but it is the command I use when I get the issue and, as far as I recall, the warning should be very similar to this:</p>
  
  <pre><code>git push -u "server"
  ! [rejected]        server/master     -&gt; master  (non-fast-forward)
  </code></pre></li>
  <li><p>Today I also can't even fetch from one client into another without getting the "non-fast-forward" freaking issue. Then I tried pushing from it into the server with the mirror option, which is the only one that works for pushing into the server due to issue #1, and pulling from the server on my machine. For my surprise, that worked! But now trying to fetch or pull from the other machine, the issue persists. My problem here is: why?!</p>
  
  <p>The following is just a copy &amp; paste from <a href="http://code.google.com/p/gitextensions/" rel="nofollow noreferrer">Git Extensions</a>:</p>
  
  <pre><code>git fetch --progress "client" 
  Done
  From \\\CLIENT\project\git
  ! [rejected]        master     -&gt; client/master  (non-fast-forward)
  </code></pre>
  
  <p><a href="https://stackoverflow.com/questions/1709177/git-pull-certain-branch-from-github">I've actually fixed this</a> using <code>git fetch -f "client"</code>, but I still don't know what happened.</p></li>
  </ol>
  
  <p>Disclaimer: Now I'm already going to <a href="http://git-scm.com" rel="nofollow noreferrer">git-scm.com</a> to try and learn in details how the hell git works. Maybe I shouldn't even be trying to "fully sync everything" after all...</p>
  
  <p>--</p>
  
  <p><strong>edit</strong>: Besides the obvious "not pulling before" issue, I've found two reasons why this could potentially be happening, but none helped fixing in my case: using <code>rebase</code> for editing past commits which are already replicated elsewhere or <a href="http://rip747.wordpress.com/2009/04/20/git-push-rejected-non-fast-forward/" rel="nofollow noreferrer">having same branches under different names</a>, which must happen for the <code>master</code> at very least. This later one makes a lot of sense, except that it works some times and, after some pushes it stops working. Plus, on the fetch side, using <code>fetch -f</code>, it didn't broke any branches. So that wasn't it.</p>