1.
命令: git reset --soft 提交id [fileName]
案例: git reset --soft 1c27eac023b6a66a9d40b460cd8bbc6e564be9e9 a.txt
结果: 会将版本库中的a.txt文件内容还原到该提交id那刻时的内容。[fileName]可有可无, 有fileName时, 只重置该fileName文件, 无fileName时, 重置所有的文件。

2.
命令: git reset 提交id
案例: git reset 1c27eac023b6a66a9d40b460cd8bbc6e564be9e9
结果: 会将版本库和暂存区中的文件内容还原到该提交id那刻时的内容。

3.
命令: git reset --hard 提交id :
案例: git reset --hard 1c27eac023b6a66a9d40b460cd8bbc6e564be9e9
结果: 会将暂存区和工作区的文件 (被版本控制的文件, 即该文件被执行过 git add 命令) 的内容还原到上述提交id时的状态。值得注意的是, 如果该文件没有被git跟踪, 即没有执行过 git add 命令, 则该文件不受影响, 不存在还原一说。