git代码回退--hard的坑

1,744 阅读1分钟

git reset -soft :取消了commit  

git reset -mixed(默认) :取消了commit ,取消了add

git reset -hard :取消了commit ,取消了add,取消源文件修改

千万不要轻易用--hard,会把你工作区的代码全部清除,如果git add 还能找回来,如果没有git add 基本找不回来。 使用了git add 找回方法

1、使用git fsck --lost-found命令查找未提交而被删除的记录
2、使用git show+数字(查找的删除记录编号),确认需要恢复的内容
3、使用git merge+数字(查找的删除记录编号),合并被删除的记录**

如果git commit 会比较好找回, git reset --hard HEAD~1,退回到上一个版本,用git log则是看不出来被删除的commitid,用git reflog则可以看到被删除的commitid,我们就可以买后悔药,恢复到被删除的那个版本。

git reflog 使用这一命令行可以看到你的版本号,然后 git reset --hard 版本号

  • HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id
  • 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
  • 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。