
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 |