git各阶段代码撤销简介

git各阶段代码修改回退撤销操作

工作区的代码撤销

【step 1】 使用git status 查看当前状态,会提示出修改了文件,如下图中我修改了工作区的main.cpp文件,可以看到git给出的提示由两个,一个是使用git add将工作区的代码提交到暂存区,还有一个是git checkout就是回退到修改之前的代码

在这里插入图片描述

【step 2】 输入命令 git checkout --filename 直接对某个修改过的文件进行回退,git checkout – . 对当前项目文件中所有改动过的文件都进行撤销,我这里做对main.cpp的撤销,打开文件会发现写过的被撤销了,大家可以在git bash上直接使用cat 看main.cpp文件是否被撤销,注意使用命令改动时,就是使用本地仓库的main.cpp文件将工作区的main.cpp文件替换,这样就撤销回原来的maic.cpp文件了,大家可以cat查看文件内容,进行验证

在这里插入图片描述


暂存区的代码撤销

【setp 1】使用 git add 将文件提交到暂存区了,发现代码修改有误,需要撤销

在这里插入图片描述
【step 2】可以使用 git reset HEAD 或者 git reset HEAD filename ,第一个是将暂存区的所有的代码全部撤销,第二个是将给定的filename文件回撤销,撤销成功,这一步实际是将暂存区的代码回退到工作区,你修改的代码还在
在这里插入图片描述


本地仓库的代码撤销

【step 1】不小心使用 git commit -m “xxx” 将修改有误的代码提交到了本地的仓库中

在这里插入图片描述
【step 2】 输入 git log 查看最近修改给的日志,会有每次修改的commit_id,下图中可以看出本地仓库分支比远程仓库分支对一次提交

在这里插入图片描述
【step 3】 输入 git reset --hard commit_id 让HEAD指针指向你指定的 commit_id,实际就相当于回退,这次操作并没有删除任何东西,只是修改指针的指向,可以看到图中显示,将HEAD指着指向修改了

在这里插入图片描述


如果你执行了上面的第三步,又想将原来的代码在回退回来 ,使用上面的例子就是想将修改的代码留下,即将HEAD的指针该回去,就可以使用 git reflog 查看对应的commit_id然后在使用 git reset --haed commit_id 将HEAD指针在修改回去即可,在图中可以看到HEAD指针的指向又被修改回去了

在这里插入图片描述


远程仓库代码的撤销

【step 1】使用本地仓库代码撤销方式,先将HEAD指针的指向修改,使得本地仓库回退

在这里插入图片描述
【setp 2】输入 git push -f origin master 强制更新远程仓库,因为此时你的本地仓库的commit是比远程仓库的commit晚一步,因此提交时需要加 -f 强制推送,需要注意的是如果你们同时多个人都在做这个项目,那么强制push时就需要小心了,最好使用 git log 查看一下修改日志,防止强制push,覆盖掉了别人写好的代码
在这里插入图片描述
大家如果对git提交代码命令不熟悉可以看我的上一篇git常用命令的博客 git常用命令

发布了9 篇原创文章 · 获赞 3 · 访问量 175

猜你喜欢

转载自blog.csdn.net/weixin_43604792/article/details/104038549