在从一个分支到另一个分支的一些提交之后,我仍然会在稍后创建一个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'但无法理解其背后的逻辑。
答案 0 :(得分:3)
理想情况下,您首先在更新的版本上重新开发dev。
git checkout dev
git rebase release
背后的逻辑是Git应该检测到a3和a5与b1和b2相同:意味着a3和a5根本不会被重放。
新的dev分支(你将从中创建PR)不再拥有a3和a5。
另见: