
1 yinheli 2014 年 8 月 27 日 reset |
2 kookxiang 2014 年 8 月 27 日 可以reset退版本,也可以强制pull |
3 poke707 2014 年 8 月 27 日 若进一步取消代码改动可以加reset 的hard模式, 若只是想更改上次commit本身可以用commit的amend参数 |
4 aa65535 2014 年 8 月 27 日 取消最后一次提交: git reset --soft HEAD~1 后面数字可以看作是取消的 commit 次数。 --soft 参数表上只取消 commit 但保留文件的修改(相当于git add 之后的的状态),如果你想连修改都不要的话就用 --hard 参数。 |
5 slixurd 2014 年 8 月 27 日 我一直都是用git stash 还能保证不会丢失修改之后的数据= =,防作死必备 |
6 bombless 2014 年 8 月 27 日 git stash+1 |
7 witcher42 2014 年 8 月 27 日 Let me Google that for you: http://lmgtfy.com/?q=git+revert+unpushed+commit |
8 zhibin 2014 年 8 月 27 日 git stash 只会保存未提交的修改。如果你已经 commit 了但是还没push ,stash 是没什么用的。 如果你在 branch-a 上工作(如果没有就新建一个),你可以 git checkout -b new-branch,在 new-branch 上回退到上次提交之前(或者直接 checkout 到上次提交之前-b new-branch)。 多用 branch 和 stash ,基本上不会有丢失数据的情况。 |
9 SunLn 2014 年 8 月 27 日 git log 看到某个commit的hash后 git reset --hard hash |
10 Julyyq 2014 年 8 月 27 日 取消上一次commit: git reset HEAD^ |
11 TankyWoo 2014 年 8 月 27 日 git status 不是有提示吗?楼主没看? |
12 billlee 2014 年 8 月 28 日 1) 取消上一次 commit: git reset HEAD^ # 会保留在 stage 2) 取消上一次 commit: git reset --hard HEAD^ # 完全丢弃 3) 修改上一次的 commit: git add something git commit --amend 4) 取消倒数第三、第二个 commit: git rebase -i HEAD~3, 然后在编辑器中删除第一行和第二行后,保存退出。 5) 修改倒数第三个 commit: git rebase -i HEAD~3, 然后把第一行的 pick 改成 edit. 6) 合并倒数第三、第二个 commit: git rebase -i HEAD~3, 然后把第二行 pick 改成 squash 或 fixup git rebase --interactive 特别强大,几乎可以实现所有修改历史的需求。 |
13 kimmykuang 2014 年 8 月 28 日 看需要,git reset --soft/--hard HEAD^n,n表示回退几个commit |
14 billlee 2014 年 8 月 28 日 @kimmykuang 回退多个 commits 是 HEAD~n 吧 |
15 for8ever OP 谢谢各位,已经解决了,git log 查找到那个 commit 的 hash ,然后 git reset --hard hash 回退到那个 commit 之前的版本,再 git pull 就 OK 了。 |
16 goodxxx 2014 年 8 月 28 日 good. |
17 julyclyde 2014 年 8 月 29 日 checkout到旧的commit作为HEAD就行了 |