1
yinheli 2014-08-27 18:38:03 +08:00
reset
|
2
kookxiang 2014-08-27 18:40:50 +08:00
可以reset退版本,也可以强制pull
|
3
poke707 2014-08-27 18:59:45 +08:00
若进一步取消代码改动可以加reset 的hard模式,
若只是想更改上次commit本身可以用commit的amend参数 |
4
aa65535 2014-08-27 19:09:05 +08:00 1
取消最后一次提交: git reset --soft HEAD~1 后面数字可以看作是取消的 commit 次数。
--soft 参数表上只取消 commit 但保留文件的修改(相当于git add 之后的的状态),如果你想连修改都不要的话就用 --hard 参数。 |
5
slixurd 2014-08-27 19:09:48 +08:00
我一直都是用git stash
还能保证不会丢失修改之后的数据= =,防作死必备 |
6
bombless 2014-08-27 19:36:24 +08:00
git stash+1
|
7
witcher42 2014-08-27 19:50:47 +08:00
Let me Google that for you: http://lmgtfy.com/?q=git+revert+unpushed+commit
|
8
zhibin 2014-08-27 21:01:29 +08:00
git stash 只会保存未提交的修改。如果你已经 commit 了但是还没push ,stash 是没什么用的。
如果你在 branch-a 上工作(如果没有就新建一个),你可以 git checkout -b new-branch,在 new-branch 上回退到上次提交之前(或者直接 checkout 到上次提交之前-b new-branch)。 多用 branch 和 stash ,基本上不会有丢失数据的情况。 |
9
SunLn 2014-08-27 21:03:33 +08:00
git log
看到某个commit的hash后 git reset --hard hash |
10
Julyyq 2014-08-27 22:09:53 +08:00
取消上一次commit: git reset HEAD^
|
11
TankyWoo 2014-08-27 22:11:36 +08:00
git status 不是有提示吗?楼主没看?
|
12
billlee 2014-08-28 00:55:07 +08:00
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-08-28 09:54:22 +08:00
看需要,git reset --soft/--hard HEAD^n,n表示回退几个commit
|
14
billlee 2014-08-28 10:29:14 +08:00
@kimmykuang 回退多个 commits 是 HEAD~n 吧
|
15
for8ever OP 谢谢各位,已经解决了,git log 查找到那个 commit 的 hash ,然后 git reset --hard hash 回退到那个 commit 之前的版本,再 git pull 就 OK 了。
|
16
goodxxx 2014-08-28 17:05:31 +08:00
good.
|
17
julyclyde 2014-08-29 16:52:23 +08:00
checkout到旧的commit作为HEAD就行了
|