title: git graceful rebase/complete merge to branch
body: <p>Goodday,</p>
  
  <p>I am currently trying to figure out how I can 'overwrite' a branch without using something drastic like 'rebase'.</p>
  
  <p>For example:</p>
  
  <pre><code>branch::master
  |- dir_a
  |  |- file_a
  |  |- file_b
  |- file_c
  
  branch::dev
  |- dir_a
  |  |- file_b
  |- file_c        [edited compared to branch::master]
  
  
  branch::master   [after merge from branch::dev with strategy 'ours' (keep changes from branch::dev)]
  |- dir_a
  |  |- file_a     [is also merged, but should be deleted]
  |  |- file_b
  |- file_c        [edited version from branch::dev]
  </code></pre>
  
  <p>To fix the above problem, I could do a 'rebase', but that would break loats of stuff, since the master(head) branch is not a private/personal one.</p>
  
  <p>So the question is: <em>Is there a good way to completly overwrite/replace the content of the master branch so that dependencies on the current master branch are not broken?</em></p>
  
  <hr>
  
  <p>information that may influence the possibilities:</p>
  
  <ul>
  <li>there may be a difference of multiple commits between both branches (the amount is also unknown)</li>
  <li>preferably the 'dev' branch should proceed to exist (also for dependency reasons).</li>
  <li>preferably the history of the master branch should stay intact</li>
  </ul>
  
  <p>If there is any additional clarification needed, feel free to ask.
  Thanks for thinking with!</p>