如何将currentBranch rebase到已squash合并initialBranch的master分支
操作步骤
- 第一步:同步本地master分支为远程最新版本,确保已经包含squash合并后的提交9
git checkout master git pull origin master
- 第二步:获取currentBranch与原initialBranch的分叉提交(即结构中的提交5)的哈希值
git merge-base currentBranch initialBranch
执行后会输出对应的哈希字符串,下文用[分叉点哈希]代指该返回值。
- 第三步:执行rebase操作,将currentBranch中分叉点之后的提交(即6、7两个提交)迁移到最新的master分支之上
git rebase --onto master [分叉点哈希] currentBranch
注意:如果rebase过程中提示代码冲突,需要手动修改冲突文件,修改完成后执行
git add 冲突文件路径,再运行git rebase --continue继续流程,直到rebase完成。
- 第四步:rebase完成后,本地currentBranch已经是目标结构,因为提交历史发生变更,需要强制推送到远程覆盖旧版本
git push -f origin currentBranch
提示:如果currentBranch是多人协作分支,请提前告知所有协作者拉取最新的分支版本,避免后续提交出现历史冲突
内容的提问来源于stack exchange,提问作者Azianese
相关产品推荐
相关产品推荐

