出现的问题:
某一天,所有的开发文件已经在 development 分支上,但是这时候,线上出了一个问题,需要及时修复,于是从 master 分支上,拉了一个 bug 分支,进行处理,master 分支本应合并 bug 分支,结果合并了 dev 分支,而且还 commit,并推到了远端的 master 分支,这时候才发现出了问题,于是乎,问题就来了
解决方法:
- 1. 找到最后一次提交到 master 分支的版本号,即【merge 前的版本号】
- 2. 回退到某个版本号
git reset --hard 【merge前的版本号】
这个时候已经会退到了上一次提交的版本,但是之后的修改还是存在 master 分支上,以下步骤很关键
- 3. 重新创建一个分支,这时候的分支就是上一次提交的代码
git checkout -b newmaster
- 4. 推到对应的远程 newmaster
git push
- 5. 这个时候相当于备份做好了,接下来就可以删除本地及远端的 master 分支
git branch -d master
git push --delete origin master
- 6. 从 newmaster 分支,重新在创建 master 分支,并推向远端
git checkout newmaster
git checkout -b master
git push
- 7. 大功告成!