kingBook

导航

git reset

git reset [--soft | --mixed | --hard] [HEAD]
--mixed 重置 HEAD 和索引 (默认,可以不用带该参数)
--soft 仅重置 HEAD
--hard 重置 HEAD, 索引和工作区(注意:使用--hard时,请确保工作区已提交或备份,否则会销毁工作区数据无法恢复)

::回退到上一个版本  
git reset –hard HEAD~1

::回退到指定版本
git reset –hard bae128  

::将本地的状态回退到和远程的一样 
git reset --hard origin/master 

HEAD 说明:

  • HEAD 表示当前版本
  • HEAD^ 上一个版本
  • HEAD^^ 上上一个版本
  • HEAD^^^ 上上上一个版本
  • 以此类推...

可以使用 数字表示

  • HEAD~0 表示当前版本
  • HEAD~1 上一个版本
  • HEAD~2 上上一个版本
  • HEAD~3 上上上一个版本
  • 以此类推...

取消暂存某个文件:

:: 执行后可以使用 git status 查看,git add -A 再次添加到暂存
git reset HEAD~1 e/e.txt 

压缩提交历史:

git log --oneline

f95d7bd (HEAD -> master) e.txt v3
3b36804 e.txt v2
7696faf e.txt v1
7367670 create e.txt
...
git reset --soft 7367670
git log --oneline

7367670 (HEAD -> master) create e.txt
...
git status

On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   e/e.txt
git commit -m "e.txt v1,v2,v3"

[master 52b6c18] e.txt v1,v2,v3
 1 file changed, 1 insertion(+)
git log --oneline

52b6c18 (HEAD -> master) e.txt v1,v2,v3
...

更多参考:
Git-工具-重置揭密
git reset 命令

posted on 2018-04-27 09:53  kingBook  阅读(237)  评论(0)    收藏  举报