1
fly2never 2013-01-24 20:48:15 +08:00
git log往回找找,然后git reset重置下状态
|
2
yuelang85 2013-01-24 20:49:48 +08:00
危险做法:reset
简单做法:git diff <commit> <commit> > a.patch |
3
yuelang85 2013-01-24 20:51:22 +08:00
打出a.patch来之后,patch回去。确定修改的文件都没问题以后,commit。
reset选项好多,而且不好区别,这种做法会多出一个垃圾commit,但是比较安全,而且 逆向 方便。 |
4
G_virus 2013-01-24 21:32:48 +08:00 via iPhone
git reset --hard HEAD~
reset没有那么危险,git很少会真正删除东西。可以用 git reflag show master 来看到master分支的整个历史。 |
5
jint 2013-01-24 21:37:51 +08:00
我认为你有两个失误,第一,生产环境和开发环境没有区分,上生产的代码,起码要打个TAG,再手工备份一份,那么你现在就不会导致服务瘫痪,无计可施了。
不过毕竟个人开发很难做的那么规范。 另一个失误是,提交的粒度太大,以至于都不记得做过什么改动了,也就无法人肉rollback了。 |
6
yaotian OP git reset --hard HEAD
成功恢复! 谢谢! |
7
znnet7 2013-01-24 23:30:19 +08:00
git merge --abort就行了啊 就能回到你merge之前的状态了
|
8
tss 2013-01-25 13:51:50 +08:00
目前状态先打个tag,然后hard reset到最后正确的commit,再cherrypick有用的commit,再push --force
|