title: Bitbucket: what is the best way to update a pull request?
body: <p>What is the best way to update a pull request without creating a new commit in Bitbucket?</p>
  
  <p>According to the <a href="https://confluence.atlassian.com/bitbucket/pull-requests-and-code-review-223220593.html" rel="nofollow noreferrer">Atlassian webpage</a> </p>
  
  <blockquote>
    <p>Authors  update code based on feedback and push new commits  to the branch or fork, updating the pull request.</p>
  </blockquote>
  
  <p>It means that authors are supposed to create new commits with the updated code, resulting in having interesting original commit/commits and some commits with changes introduced due to comments received during review:
  <a href="https://i.stack.imgur.com/N65Sh.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/N65Sh.png" alt="enter image description here"></a></p>
  
  <p>What I want to have is one commit per each pull request. The commit should include both the original changes and changes introduced due to comments received during review:
  <a href="https://i.stack.imgur.com/rXmIY.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/rXmIY.png" alt="enter image description here"></a></p>
  
  <p>Here are the solutions I came up with so far:</p>
  
  <ol>
  <li>Developers should create new commits with the changes suggested by reviewers and the <a href="https://confluence.atlassian.com/bitbucketserver/pull-request-merge-strategies-844499235.html" rel="nofollow noreferrer">squash merge strategy</a> should be chosen in Bitbucket. </li>
  </ol>
  
  <p>However, I am looking for something better than this. I'd still see the commits that were created after submitting pull requests, such as  "refactoring" and "more changes".</p>
  
  <ol start="2">
  <li>Developers should amend existing  commits with changes suggested by reviewers and the <a href="https://confluence.atlassian.com/bitbucketserver/pull-request-merge-strategies-844499235.html" rel="nofollow noreferrer">squash merge strategy</a>  or (even preferably) the <a href="https://confluence.atlassian.com/bitbucketserver/pull-request-merge-strategies-844499235.html" rel="nofollow noreferrer">Rebase, fast-forward merge strategy</a> should be chosen in Bitbucket. </li>
  </ol>
  
  <p>The problem is that when the developer amends a commit and pushes it to Bitbucket, there is no user friendly way for reviewers to see the changes made by the author. The only way is to run locally:</p>
  
  <pre><code>git pull
  git diff &lt;old commit sha&gt;..&lt;new commit sha&gt;
  </code></pre>
  
  <p>This is quite inconvenient for reviewers and they would like to be able to see the changes made by the developer in the new "patch".</p>
  
  <p>Is there a way to achieve that without creating extra commits? Or should we get used to the fact that such commits have to be created for reviewers' sake and go for the solution number 1?</p>
  
  <p>My Bitbucket version is Atlassian Bitbucket v4.14.5.</p>
  
  <p><strong>Edit:</strong> It is important to me not to see the clean-up, because such commits obscure code history: after a few months no one is going to care about changes made by the author due to reviewers' comments. All that is going to matter is the final form of the changes delivered in a given pull request. </p>
  
  <p>But maybe it is ok to see the "extra" commits or the evidence of the clean-up? Should I get used to it? Is my approach unreal/impossible? Do teams generally accept extra commits or clean-ups?</p>
  
  <p><strong>Edit 2</strong>: The question is specific to Bitbucket Server-I am asking if Bitbucket has a nice feature that allows reviewers to see the changes made by the author if they amend a commit. If not, how I can achieve what I want using Bitbucket? I don't care about other git repositories, since I should be using Bitbucket and I doubt I will be allowed to switch to another git host.</p>