从一个分支到另一个分支挑选一些提交后,我仍然在稍后创建拉取请求时看到提交。
例如,有一个 git 项目,它有两个分支:Dev、Release。
提交历史记录按以下顺序排列。
开发 : a1, a2, a3, a4, a5, a6
版本: A1, A2
现在,如果我挑选从 Dev 到发布单独提交 a3 和 a5。现在提交历史记录将如下所示。精心挑选的提交将具有新的SHA(b1和b2(。
版本: a1,a2, b1, b2.
稍后,如果我尝试创建从 Dev 到发布分支的拉取请求,我会看到提交 a3 和 a5。
但是在这种情况下,我如何找到这两个分支之间的提交差异?
我看到一些文章说"变基",但无法理解其背后的逻辑。
理想情况下,您首先在更新的版本上重新设置开发基础。
git checkout dev
git rebase release
这背后的逻辑是 Git 应该检测到 a3 和 a5 与 b1 和 b2 相同:这意味着 a3 和 a5 根本不会重播。
新的开发分支(您将从中创建 PR(将不再有 a3 和 a5。
另请参阅:
- "
git cherry-pick
后git merge
:避免重复提交"> - "使用
git rebase
删除重复的精选提交">