Git cherry pick创建了重复的提交

时间:2017-03-29 04:13:17

标签: git github git-cherry-pick

在从一个分支到另一个分支的一些提交之后,我仍然会在稍后创建一个pull请求时看到提交。

比如说,有一个git项目有两个分支:Dev,Release。

提交历史记录按以下顺序排列。

DEV:a1,a2,a3,a4,a5,a6

RELEASE:a1,a2

现在,如果我选择承诺a3和a5单独从Dev发布。现在提交历史记录如下所示。樱桃挑选的提交将有新的SHA(b1& b2)。

RELEASE:a1,a2,b1,b2。

稍后如果我尝试从Dev to Release分支创建一个pull请求,我会看到提交a3和a5。

但是在这种情况下,我怎样才能找到这两个分支之间的提交差异?

我看到一些文章说明了#rebase'但无法理解其背后的逻辑。

1 个答案:

答案 0 :(得分:3)

理想情况下,您首先在更新的版本上重新开发dev。

git checkout dev
git rebase release

背后的逻辑是Git应该检测到a3和a5与b1和b2相同:意味着a3和a5根本不会被重放。
新的dev分支(你将从中创建PR)不再拥有a3和a5。

另见:

相关问题