如何将6次提交从功能分支更改为2次提交到主分支

时间:2019-10-15 12:10:47

标签: git commit

我是git的新手,所以这听起来像是一个愚蠢的问题。我有一个master分支和一个Feature分支。

A-> B-> C-> D(主控头)

我从C创建了一个功能分支 C-> M-> N-> O-> P-> Q-> R(功能分支的头)

现在,我需要将功能分支合并到master分支,但是我希望我在Feature分支中所做的六个提交不反映在master中,而应该只有两个提交。 我们该怎么做?

我希望两个分支的更改都在我的主分支中。

2 个答案:

答案 0 :(得分:1)

第1步:为您的主人重新设置

结帐功能分支,并在结帐运行后: git pull --rebase origin master

如果需要合并,请执行合并,提交并运行git rebase --continue

您的Feature分支将如下所示: C-D-M-N-O-P-Q-R

第2步:壁球

运行:git rebase -i HEAD~6 6是因为您要压缩最后6次提交。

第一次提交是“ pick” 其他都是“ s”(用于南瓜)

第3步:推送到仓库中

在功能分支上执行git push -f,以将其和新的历史记录推送到存储库中。

由于挤压需要强制推动,并且您重写了git历史记录。

第4步:并入母版

检出您的master分支并运行git merge <feature-branch>

答案 1 :(得分:0)

  1. 使用git check feature_branch的结帐功能分支
  2. 使用C->M->N->O->P->Q->R或git rebase -i C->Sgit rebase -i C压缩到HEAD~6
  3. 使用git rebase master来基于master
  4. 通过git checkout master结帐的主人
  5. 合并功能分支以掌握git merge feature_branch

注意:

  

(如果您已将feature_branch推送到远程,则还必须对Feature_branch执行git push -f才能覆盖远程Feature_branch)