1. # 恢复暂存区的指定文件到工作区
    2. $ git checkout [file]
    3. # 恢复某个commit的指定文件到暂存区和工作区
    4. $ git checkout [commit] [file]
    5. # 恢复暂存区的所有文件到工作区
    6. $ git checkout .
    7. # 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
    8. $ git reset [file]
    9. # 重置暂存区与工作区,与上一次commit保持一致
    10. $ git reset --hard
    11. # 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变
    12. $ git reset [commit]
    13. # 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致
    14. $ git reset --hard [commit]
    15. # 重置当前HEAD为指定commit,但保持暂存区和工作区不变
    16. $ git reset --keep [commit]
    17. # 新建一个commit,用来撤销指定commit
    18. # 后者的所有变化都将被前者抵消,并且应用到当前分支
    19. $ git revert [commit]
    20. 暂时将未提交的变化移除,稍后再移入
    21. $ git stash
    22. $ git stash pop