title: Git retains the code that is remotely reverted
body: <p>Our team has two branches, one is <code>develop</code> branch, the other is <code>my-feature</code> branch. <code>my-feature</code> is branched off from <code>develop</code>.</p>
  
  <p>One developer has made some changes on <code>my-feature</code> branch. Then, he merged it to <code>develop</code>. During this procedure, no other developer committed to <code>my-feature</code> and <code>develop</code>. I pulled the <code>develop</code> branch at this point.</p>
  
  <p>Later on, that developer reverted his change from the <strong>remote</strong> <code>develop</code> branch. </p>
  
  <p>After that, I did <code>git pull origin develop</code> again. But I still see his changes (that previously had been merged then reverted) on my local <code>develop</code> , why?</p>
  
  <p><strong>======= UPDATE ======</strong></p>
  
  <p>With <code>git reset origin/develop --hard</code>, I got my local <code>develop</code> the same as the remote one now. But locally, I have a new local branch which was branched off from the <code>develop</code> branch that contains that developer's changes. Now I tried <code>git rebase develop</code> on my local feature branch, I still see those changes even though the <code>develop</code> is now clean (without that developer's changes). How to deal with it now to have my local feature branch be clean?</p>