Git squash在与master合并的分支中提交

时间:2017-10-23 08:13:05

标签: git rebase squash

我在我的分支中提交很少,提交A,提交B,提交C,然后我在我的分支中合并master,因为提交D,提交E,提交F现在在我的提交之上。如何将提交A,B,C压缩到单个提交中?

1 个答案:

答案 0 :(得分:0)

所以你有这个:

master      -----D---E---F--\
work_branch   \---A---B---C--* (merge-Point) 

所以你创建一个头部在C

的分支
git checkout <sha1 at C>

git checkout -b work_branch_2

然后使用交互式rebase

git rebase -i 

这将打开一个编辑器,其中包含要在每次提交时执行的操作列表:

pick <sha1 A>  comment A
pick <sha1 B>  comment B
pick <sha1 C>  comment C

on line commit B an C replace by squash

pick <sha1 A>  comment A
s <sha1 B>  comment B
s <sha1 C>  comment C

所以你会得到这个:

master      -----D---E---F--\
work_branch   \---A---B---C--* (merge-Point)  
work_branch_2  \---A'

我建议在此之后你改变而不是合并 git rebase master

注意:您可以根据需要为每个尝试创建分支,只需按下右侧的分支:)