git reset 和 git reset --hard区别

git resetgit reset --hard区别

先说知识点

有时候,进行了错误的提交,但是还没有push到远程分支,想要撤销本次提交,可以使用git reset –-soft/hard命令

缺省情况

git reset 缺省为git reset --soft

二者区别:

  • git reset –-soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
  • git reset -–hard彻底回退到某个版本,本地的源码也会变为上一个版本的内容,撤销的commit中所包含的更改被冲掉

我忘了知识点踩坑

沙雕认为

  1. 当下情况:最新版本的100M压缩包已经在本地删除,但是本地版本库中之前有个版本中还有,所以git push到gitee会被拒收..但是git一定要先传输完前面的版本之后再传后面的修改(所以我要帮git本地仓库手动执行git rm前面版本的文件,或者忘了文件名,通过下面3的复杂的操作,来完成此项操作)

  2. 真的不知道怎么去掉本地仓库的4commit,因为去不掉的话就会先向远程库提交超100M文件然后被拒接,所以原地重复…

  3. 然后如果git rm 忘了那个压缩包的名字了,所以直接回退版本到昨天的样子,然后再git reflog回来并展示今天的所有修改,git checkout归还所有修改,然后把今天的修改备份,之后再回到昨天的版本库,然后重新提交今天的内容,除了你个超过100M的压缩包

慢慢懂了

奇怪,最后一次版本回退又没有删除本地文件,可能是因为恢复过?

原来是git reset –hard 和 git reset –soft的区别

所以我幸幸苦苦寻找了好久的取消commit而不影响工作区就是git reset –soft

真是汗啊,因为用得少,所以学了又忘了,所以现在踩一遍坑,使得自己更深刻了,也提醒了自己 对于基础知识 还是要多重复,学习多次,不断加深记忆,或者很可能还是会踩坑

参考:https://blog.csdn.net/yangfengjueqi/article/details/61668381