假设我已经开发了一项功能,branch1
并使用 GitHub 拉取请求将其发送给代码审查。在审核期间,我在branch2
.
branch2 -> D --> E --> F
/
branch1 -> A --> B --> C
/
master M
我的审稿人喜欢我的工作!无需更改。branch1
我合并了使用 GitHub 的Squash 和合并功能的拉取请求。
运行并删除后git pull
,master
我branch1
遇到了这种情况:
branch2 -> A --> B --> C -> D --> E --> F
/
master M --> S
要为 发送一个看起来干净的 PR branch2
,我想让我的提交树看起来像这样:
branch2 -> D' --> E' --> F'
/
master M --> S
S
(由“压缩和合并”为 生成的提交)处的代码branch1
与 相同C
,因为它只是A --> B --> C
.
实现此目的的一种方法是在以下位置运行这样的序列branch2
:
git reset --hard S
git cherry-pick D E F
但是以这种方式列出所有提交变得乏味,这真的感觉像是一个变基。当然,因为 commits并且需要消失,git rebase master
所以不会工作。A
B
C
将分支从其祖先提交之一的压缩版本中变基的最佳方法是什么?