我是git的新手,所以这听起来像是一个愚蠢的问题。我有一个master分支和一个Feature分支。
A-> B-> C-> D(主控头)
我从C创建了一个功能分支 C-> M-> N-> O-> P-> Q-> R(功能分支的头)
现在,我需要将功能分支合并到master分支,但是我希望我在Feature分支中所做的六个提交不反映在master中,而应该只有两个提交。 我们该怎么做?
我希望两个分支的更改都在我的主分支中。
答案 0 :(得分:1)
结帐功能分支,并在结帐运行后:
git pull --rebase origin master
如果需要合并,请执行合并,提交并运行git rebase --continue
您的Feature分支将如下所示:
C-D-M-N-O-P-Q-R
运行:git rebase -i HEAD~6
6是因为您要压缩最后6次提交。
第一次提交是“ pick” 其他都是“ s”(用于南瓜)
在功能分支上执行git push -f
,以将其和新的历史记录推送到存储库中。
由于挤压需要强制推动,并且您重写了git历史记录。
检出您的master分支并运行git merge <feature-branch>
答案 1 :(得分:0)
git check feature_branch
的结帐功能分支C->M->N->O->P->Q->R
或git rebase -i C->S
将git rebase -i C
压缩到HEAD~6
git rebase master
来基于master git checkout master
结帐的主人git merge feature_branch
(如果您已将feature_branch推送到远程,则还必须对Feature_branch执行
git push -f
才能覆盖远程Feature_branch)