从具有干净提交历史记录的分支创建一个新分支



我有一个分支,它有很多不必要的提交,所以我想从它分支到一个具有干净历史记录的版本。

这是一个例子:

Master:
commit1
commit2
commit3
BranchB:
commitB1
commitB2
commitB3
commitB4
commitB5
commitB6
After merge:
commit1
commit2
commit3
commitB1
commitB2
commitB3
commitB4
commitB5
commitB6

取而代之的是,我想要这样的东西:

commit1
commit2
commit3
commitB6

是否可以从分支 B(提交 B6 后的状态)克隆所有代码,并使用新的提交消息将其复制到新的分支 C?

git checkout master
git checkout -b branchc
git merge --no-ff branchb

然后合并提交将分支 B 从 B1-B6 的更改合并到主节点之上。

从当前master创建新分支

git checkout -b BranchC

执行变基交互并删除您不需要的提交

git rebase -i commit3

在变基交互式编辑器中,它将如下所示

pick commit3
pick commitB1
pick commitB2
pick commitB3
pick commitB4
pick commitB5
pick commitB6

删除不需要的提交。编辑器可能看起来像这样。

pick commit3
pick commitB6

保存并退出。

希望commitB6不依赖于commitB1的变化..commitB5 .否则,您必须解决冲突。

你也可以这样做,一个樱桃挑选

git checkout master
git checkout -b branchc
git cherry-pick commitB6

最新更新