git merge错误的分支后又提交到远程仓库了,该怎么恢复回去
某草草
某草草 2017-05-02 09:50:50
0
2
812

1.deploy分支是生产环境的分支,master是主开发分支。
2.deploy分支有几个文件配置和master分支的不一样,通常都是将master分支合并到deploy分支,并不会改变deploy分支下的配置文件信息。
3.不小心把deploy分支合并进了master分支,导致master分支下的配置文件被改成了deploy分支下的,并且做了push,远程master分支下的配置文件也成deploy下的了。
4.改回了master分支下的配置文件,重新做了push,但是现在不敢往deploy分支合并了,因为担心master分支下的配置会替换掉deploy下的。
现在想恢复master分支之前的版本,以及远程仓库内的版本。该怎么做?

某草草
某草草

모든 응답(2)
某草草

其实这很容易的,楼主可以先在本地进行回退操作:

  • 通过提交日志找回之前master的状态对应的哈希值

git log

复制其哈希值,假如是664d6cf35a7。

  • 然后时光穿梭,回到之前的那个状态

git reset --hard 664d6cf35a7

回退好之后,删除远程的master分支:

git push origin --delete master

如果删除不了的话,可以先在远程将默认分支设置为另一个分支,如deploy。如果楼主的远程仓库在github上的话,可以点击相应仓库的setting->branches-.default branches,修改即可。

然后再运行上面的命令删掉远程master分支。

删除之后,现在就可以重新推送master分支了,这样会在远程仓库重新建立一个master分支。推送好之后,再将远程的默认仓库重新修改为master。

现在这个状态基本上就和以前一样了。

大家讲道理

回退本地分支 > 删除远程分支 > 推送本地分支 (也就是创建一个新的远程分支)

不过这种方法对 master 这类的保护分支并不适用,可以用下面的方法:

回退本地分支 > 强行推送本地分支 (强制推送以覆盖远程分支内容)

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!