push了还想回滚怎么办?
场景:刚上完线,于是把新开发的功能push到了master分支,
但是突然产品经理说要改个东西(改动很小),得马上上线.
可是我已经把未通过测试的代码push上去了.
思路:
(a)每次上线都会打tag,我直接找到那个tag,并以此为基准新建一个git分支
结果:并没有打tag
(b)在我本地使用 git reset 来回滚,然后push上去
结果:在我本地回滚没有用,pull时还是会把之前提交的拉回来.
解决方案:
步骤一:
在我本地把修改未commit的都还原,
保证代码是最新的
步骤二:
执行 git reset
步骤三:
不要pull,马上push 到一个新的分支prod2
步骤四:
从步骤三创建的远程分支prod2 checkout出本地分支prod3
步骤五:
在本地分支prod3上修改并提交到prod2
步骤六:
上线时指定分支为prod2.
注意:push完了之后,想回滚是不可能的,只能覆盖提交.
参考:http://hw1287789687.iteye.com/blog/2311824
git push错了分支,要求回滚已经push成功的:http://hw1287789687.iteye.com/blog/2305708