1 reset 和 checkout 区别 1.checkout 对工作目录是安全的,它会通过检查来确保不会将已更改的文件弄丢;而 reset --hard 则会不做检查就全面地替换所有东西。 2.reset 会移动 HEAD 分支的指向(即 HEAD 指向的分支的指向),而 checkout 只会移动 HEAD 自身来指向另一个分支。