这是我参与2022首次更文挑战的第1天,活动详情查看:2022首次更文挑战
一. Git Rest
默认情况下,如果在调用git reset命令时,后面没有跟任何参数的话,则其执行后的效果就相当于在命令后面跟上了参数--mixed和HEAD。执行 git reset 相当于执行 git reset --mixed HEAD。HEAD可以使用任何的 Git 的提交哈希值来代替。
HEAD版本
表示当前分支的最近一次提交后的版本,HEAD代表的是最新的版本,所以HEAD^ 当前最新上一个,也可以用HEAD~1表示。
放弃本地提交记录
git reset --hard HEAD^
git reset --soft HEAD^
git reset --mixed HEAD == git reset
--hard
该参数是最常用的选项。使用--hard时,提交历史引用指针将更新为指定的提交。然后,临时索引和工作目录被重置来匹配指定的提交的索引和工作目录。任何先前对暂存索引和工作目录的未提交的更改都会被重置来匹配提交树的状态。所以暂存索引和工作目录中的任何待处理的工作都将丢失。
--mixed
该选项是默认的选项。引用指针已更新。暂存索引重置为指定提交的状态。已从暂存索引中撤消的任何更改都将移至工作目录。
--soft
当传递--soft参数时,ref指针将被更新,重置将停止。暂存索引和工作目录保持不变。
二. Git Revert
git revert命令可以被认为是“撤消”命令。但是它不是传统的撤消操作。不是从项目历史中删除提交,而是计算出如何反转要撤销的提交所引入的更改,并附加一个新的提交及生成的反向内容。新增处理撤销的提交处理记录,这种方式可以防止 Git 丢失历史记录。