GIT:在挑选或重新绑定到另一个分支时保留提交哈希

时间:2018-03-28 21:56:51

标签: git

我有一个主分支并在我的GIT中开发分支。我试图将提交从开发分支拉到主分支(按原样)和提交哈希。 我看到提交被转移到具有相同提交消息的主分支但是提交哈希。有什么办法可以在执行cherry-pick或rebase时保留提交哈希值?

例如:

开发分支已提交

commitHash   | Commit Message
--------------------------
commitHash1  A
commitHash2   B

master分支已提交

commitHash3  C

我尝试了以下方法:

方法1

来自师父:

git cherry-pick --ff <commitHash1> 
git cherry-pick -ff <commitHash2>

我现在看到师父有

commitHash4 A
commitHash5 B
commitHash3 C 

而不是(期望主分支中的输出)

commitHash1 A
commitHash2 B
commitHash3 C

有什么建议吗?

请注意: 这个主题与Specifying Git commit hash略有不同 我从没想过要生成一个新的哈希, 但要保留旧分支的哈希值。 所以我可以使用比较所有分支及其提交 git show-branch --topo-order --sparse --color --sha1-name origin/master origin/stage origin/develop

1 个答案:

答案 0 :(得分:2)

不,你不能这样做。提交哈希有效地体现了该提交中的repo的历史。两个提交不可能具有相同的哈希值,但在提交之前不同(直接或间接)。它们实际上是不同的提交对象,只有相同或相似的差异。