title: GIT: Preserve commit hash when cherry-pick or rebase to another branch
body: <p>I got a master branch and develop branch in my GIT. I am trying to pull the commits from develop branch to master branch (as is) along with commit hashes. 
  I see the commits are transferred to master branch with Same Commit message but commit hash. Is there any way I can retain the commit hash when doing cherry-pick or rebase ?</p>
  
  <p>For example:</p>
  
  <h2>develop branch has below commits</h2>
  
  <pre><code>commitHash   | Commit Message
  --------------------------
  commitHash1  A
  commitHash2   B
  </code></pre>
  
  <h1>master branch has below commits</h1>
  
  <pre><code>commitHash3  C
  </code></pre>
  
  <p>I tried the following methods:</p>
  
  <h3>Method 1</h3>
  
  <p>From Master :  </p>
  
  <pre><code>git cherry-pick --ff &lt;commitHash1&gt; 
  git cherry-pick -ff &lt;commitHash2&gt;
  </code></pre>
  
  <p>I see now Master has </p>
  
  <pre><code>commitHash4 A
  commitHash5 B
  commitHash3 C 
  </code></pre>
  
  <p>instead of  (Expecting output in Master branch)</p>
  
  <pre><code>commitHash1 A
  commitHash2 B
  commitHash3 C
  </code></pre>
  
  <p>Any suggestions ?</p>
  
  <p>Pls note: 
  This topic is little bit different from :<a href="https://stackoverflow.com/questions/48226453/specifying-git-commit-hash">Specifying Git commit hash</a>
  I never thought about generating a new hash, 
  but to retain hash from old branch. 
  so I can compare all the branches and their commits using 
  <code>git show-branch --topo-order --sparse --color --sha1-name origin/master origin/stage origin/develop</code></p>