如何将基于development分支创建的分支合并到master且不引入development代码
只合并开发分支中自有修改到Master分支
以下是两种可行的解决方案,根据你的提交数量选择即可:
方法一:使用git rebase --onto批量移植提交(适合多提交场景)
这种方式会直接把你在开发分支上的所有提交,从原development分支的基础上重新移植到master分支的最新版本,彻底剥离development的代码影响。
切换到你的开发分支(假设分支名为
my-feature):git checkout my-feature执行rebase移植提交:
git rebase --onto master development my-feature命令逻辑:把
my-feature分支中所有在development分支之后的提交,重新基于master分支构建。处理可能出现的冲突:
若rebase过程中出现代码冲突,Git会暂停操作并提示冲突文件。解决冲突后,执行以下命令继续rebase:git add . git rebase --continue若要放弃rebase,可执行
git rebase --abort。合并到
master分支:git checkout master git merge my-feature(可选)如果你的开发分支已推送到远程,需要强制推送更新(注意:确保团队内无人在该分支协作):
git push origin my-feature --force
方法二:使用git cherry-pick逐个挑选提交(适合少提交场景)
如果你的开发分支只有少量提交,可以手动挑选每个提交合并到master。
切换到
master并拉取最新代码:git checkout master git pull origin master列出你在开发分支上的所有提交(排除
development分支的代码):git log --oneline development..my-feature输出结果里每一行开头的哈希值,就是你自己的提交ID。
逐个挑选提交到
master:git cherry-pick <你的提交哈希1> git cherry-pick <你的提交哈希2>遇到冲突时,解决后执行
git add .和git cherry-pick --continue即可。
内容的提问来源于stack exchange,提问作者Ghazni Ali
相关产品推荐
相关产品推荐

