跳至主要內容

git-02-使用-05-回退

Soooooox大约 1 分钟约 426 字

git-02-使用-05-回退

版本回退到目标版本,同时可以修改暂存区和工作区的内容状态

git reset 参数 版本
  • 参数
    • --soft:暂存区和工作区的内容不变,为回退前的内容
    • --mixed:暂存区的内容变为 目标版本 提交后的内容;工作区的内容不变,为回退前的内容
    • --hard:暂存区和工作区的内容变为 目标版本 提交后的内容
    • 注意git reset 版本 的方式为 --mixed
  • 版本:回退目标版本的版本号或者版本标志

参数对比总结

命令HEAD暂存区工作目录
git reset --soft重置不变不变
git reset--mixed重置重置不变
git reset --hard重置重置重置

参数使用建议

  • --soft
    • 合并多个提交为一个(在目标版本到回退前的版本之前的内容认为可以合并为同一版本)
    • 修改最后一次提交信息(git reset --soft HEAD~1 && git commit -m "新信息"
  • --mixed
    • 重新选择要提交的文件(修改后重新 git add
    • 撤销 git add 的误操作
  • --hard
    • 彻底放弃本地所有更改
    • 回滚到某个干净的历史版本

误用 --hard 的解决办法

# 查看历史记录,找到误操作之前的版本号
git reflog

# 恢复到指定的版本
git reset --hard 版本

版本

版本:版本号与版本标志

版本号

git log 命令下的 commit 对应的乱码

备注:输入版本号可输入前面 4 到 5 位,git 会自动搜寻

版本标志

  • HEAD:当前版本
  • HEAD^:上一个版本
  • HEAD^^:上上一个版本
  • HEAD~100:往上 100 个版本