如何不使用merge将new-stuff分支设为新的master分支?
将new-stuff分支替换为新的master分支
问题背景
基于tag v0.4做修改后,创建了可正常运行的tag v0.6(对应分支new-stuff)。尝试将new-stuff合并到master后代码无法运行,尽管合并提示已是最新状态,但两者仍存在差异。当前master分支代码无法运行,new-stuff分支可正常工作,需要将new-stuff设为新的master分支。
当前Git日志
$ git log --oneline --graph * 94e0390 (HEAD -> master, origin/master, origin/HEAD) Updates. * 8f36445 Resolving. |\ | * 4997e4e (origin/new-stuff, new-stuff) Updates. | * 69391be (tag: v0.6) Fixes. * | cfc420f Resolving. * | fc18857 Resolving. * | 877d227 (tag: v0.5, origin/working) Updates. * | a2b0fb2 Minor fixes. * | f2004e2 More fixes. * | 4b1b88e Fixes. * | cfbaa3c Fixes. * | 9149f73 Fixes. * | 5c2b02c Fixes. * | 399d5b0 Fixes. * | d613c92 Fixes. |/ * e3ea999 (tag: v0.4) Work. * 261cd54 Work. * a4fcf02 Import.
解决方案
1. 本地替换master分支
- 切换到可正常运行的new-stuff分支:
git checkout new-stuff - 强制将master分支指向当前new-stuff的最新提交:
git branch -f master HEAD - 切换回master分支确认代码状态:
git checkout master
2. 推送到远程仓库(覆盖远程master)
由于远程master分支仍保留旧的有问题代码,需要强制推送本地修改后的master到远程:
git push -f origin master
注意:强制推送会覆盖远程master分支的历史,确保团队内其他成员知晓此操作,避免他们的本地代码与远程冲突。
内容的提问来源于stack exchange,提问作者Ender
相关产品推荐
相关产品推荐

