pull 代码再次遇到冲突,这次突发奇想,想试试用 git stash 来处理,结果 push 完,队友反映她 pull 后好多代码被重置,并且遇到严重冲突,受牵连70几个文件。我查看了下 commit 记录,惊讶地发现,我处理完冲突传上去的代码确实都变成了我本地的老代码,pull 下来的修改都被我重置了。都是乱用 git stash 的错。。还好发现的及时,我立即决定撤回远程仓库中我的那次 push,让代码回滚到我 push 前的状态。那么如何让远程仓库回退到某个之前的版本?步骤如下。
只需五步,方法如下:
1. 查看 commit 日志,确定要回滚到的 commit id(前7位即可)
1 | git log --oneline |
找到要回到的那次 commit ,复制 commit id,比如我这里是 b8b2df7
2. 先备份下当前版本
1 | git checkout -b old_dev |
3. 本地回滚到指定代码版本
1 | git reset --hard b8b2df7 |
4. 删除远程对应的分支
1 | git push origin :dev |
5. 重新创建远程分支
1 | git push origin dev:dev |
搞定!
或者,不使用删除分支再建分支的方法,这个要两部,有些麻烦,可以使用强制推送,只需一步:
1 git push origin dev:dev -f #因为reset后本地仓库落后于远程仓库,因此要强制提交