工作中遇到最多的就是,在push之前发现有些地方改错了,本地库需要版本回退、撤销暂存区修改,撤销本地文件修改。 git操作,知进,更要知退。
场景1:
工作区 readme 文件修改错了,丢弃修改。
确认一下readme的状态,Changes not staged for commit
git status
git checkout -- readme
场景2:
git add,暂存区的readme撤销
首先,确认状态 ,Changes to be committed
git status
git reset HEAD readme
git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本
git status
状态显示readme回到场景1的状态,如果想丢弃所有修改,执行git checkout -- readme ;一般情况,文件会有多出修改,把不合适的修改更正,继续git add ,git commit
场景3:
执行了git commit ,生成了本地版本,回撤版本
先查看本地库提交记录,git log;
回退到上一个版本
git reset --hard HEAD^
制定回退到某个版本,尾部数字是版本号的前几个数字
git reset--hard 1094a
现在总结一下:
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
网友评论