Home Git版本回退
Post
Cancel

Git版本回退

撤销WorkSpace中的更新

使用git checkout --<file>...命令。

注意:使用这种方法撤销更新的时候一定要慎重,因为通过这种方式撤销后,更新将没有办法再找回。当然,如果我们已经add了的话,那么checkout是没任何作用的,我们要先取消添加才可以撤回提交,使用下述指令:

1
2
git reset HEAD Test.java
git checkout Test.java

撤销Stage中的更新

使用git reset HEAD <file>...命令把暂存区的更新移出到WorkSpace中。

撤销Repo中的更新

撤销提交有两种方式:使用HEAD指针和使用commit id,在Git中,有一个HEAD指针指向当前分支中最新的提交。用HEAD代表当前版本,上一个版本就是HEAD^,再上一个版本就是HEAD^^依次类推,如果想回退到更早的提交,可以使用HEAD~n(也就是,HEAD^=HEAD~1,HEAD^^=HEAD~2)。

1
2
3
git reset --hard HEAD^
git reset --hard HEAD~1
git reset --c2760c5512bc67a8b990c1da508d40cca623f23

恢复被撤销的提交

回退后,你突然后悔了,想回退回新的那个版本,可是遗憾的是,你键入git log却发现没有了最新的那个版本号,这怎么办呢,没事,Git中给你提供了这颗”后悔药”,Git记录着你输入的每一条指令,键入git reflog,你会发现,版本号就在这里,然后键入git reset --hard ad2080c

–hard和–soft

前面在使用reset来撤销更新的时候,我们都是使用的--head选项,其实与之对应的还有一个--soft选项,区别如下:

  • –head:撤销并删除相应的更新。
  • –soft:撤销相应的更新,把这些更新的内容放到Stage中。

删除文件

在Git中,如果我们要删除一个文件,可以使用下面的命令,git rm <file>相比rm只是多了一步,把这次删除的更新发到Stage中。

This post is licensed under CC BY 4.0 by the author.