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