添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
$ git reset HEAD^            # 回退所有内容到上一个版本  
$ git reset HEAD^ hello.php  # 回退 hello.php 文件的版本到上一个版本  
$ git  reset  052e           # 回退到指定版本
--soft 参数用于回退到某个版本:

git reset --soft HEAD
$ git reset --soft HEAD~3   # 回退上上上一个版本 
--hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交:

git reset --hard HEAD

实例:

$ git reset --hard HEAD~3  # 回退上上上一个版本  
$ git reset –hard bae128  # 回退到某个版本回退点之前的所有信息。 
$ git reset --hard origin/master    # 将本地的状态回退到和远程的一样 

注意: 谨慎使用 –-hard 参数,它会删除回退点之前的所有信息。

HEAD 说明:

  • HEAD 表示当前版本

  • HEAD^ 上一个版本

  • HEAD^^ 上上一个版本

  • HEAD^^^ 上上上一个版本

  • 以此类推...

  • 可以使用 ~数字表示
  • HEAD~0 表示当前版本

  • HEAD~1 上一个版本

  • HEAD^2 上上一个版本

  • HEAD^3 上上上一个版本

  • 以此类推...

  • git reset HEAD

    git reset HEAD 命令用于取消已缓存的内容。

    我们先改动文件 README 文件,内容如下:

    # Runoob Git 测试 # 菜鸟教程

    hello.php 文件修改为:

    echo '菜鸟教程:www.runoob.com';
    echo '菜鸟教程:www.runoob.com';
    echo '菜鸟教程:www.runoob.com';
    

    现在两个文件修改后,都提交到了缓存区,我们现在要取消其中一个的缓存,操作如下: $ git status -s M README M hello.php $ git add . $ git status -s M README M hello.php $ git reset HEAD hello.php Unstaged changes after reset: M    hello.php $ git status -s M README M hello.php

    现在你执行 git commit,只会将 README 文件的改动提交,而 hello.php 是没有的。

    $ git commit -m '修改' [master f50cfda] 修改 1 file changed, 1 insertion(+) $ git status -s M hello.php

    可以看到 hello.php 文件的修改并未提交。

    这时我们可以使用以下命令将 hello.php 的修改提交:

    $ git commit -am '修改 hello.php 文件' [master 760f74d] 修改 hello.php 文件 1 file changed, 1 insertion(+) $ git status On branch master nothing to commit, working directory clean

    简而言之,执行 git reset HEAD 以取消之前 git add 添加,但不希望包含在下一提交快照中的缓存。



    Git 基本操作Git 基本操作