git撤销合并
今天在test测试分支上敲代码,提交了。当测试分支合并到master主分支上时,发现test测试分支的配置文件也合并过来了。正确的方法应该是在master分支上写代码,提交后推送至测试分支,记录一下回退过程。
方法一
首先切换到需要回退的分支
//HEAD为对应分支的名称
$ git checkout HEAD
查看commit_id
$ git log
查看对应的commit_id后按q退出
然后本地回退,这里我使用的是第三行命令
$ git reset --hard HEAD^ 回退到上个版本
$ git reset --hard HEAD~n n代表会推到n次前的操作
$ git reset --hard commit_id 进入指定commit的
本地回退之后需要强制推送至远程
//HEAD为对应分支的名称
$ git push origin HEAD --force
回退成功,此时问题已经解决,还有一种方法无需强推,但命令行比上述方法多,方法二的命令行我没敲过,只是记录一下
方法二
本地强制回退
$ git reset --hard commit_id
在此分支的基础上,重新创建一个分支,newmaster为新分支名称
$ git checkout -b newmaster
将新建的分支推送至远程仓库
$ git push origin newmaster:newmaster
备份完毕删除本地错误分支
//假定本地错误分支为master
$ git branch -d master
//推送至远程
$ git push --delete origin master
从newmaster上分支,重建master
$ git checkout -b master origin/newmaster
$ git push master:master