git 撤销代码

git如何撤销和回滚

由于也是刚接触git版本管理工具不久,对git使用不熟练,在项目开发中也是磕磕碰碰,于
是决定好好熟悉一下git版本管理工具,其中git的撤销和回滚在项目当中还是应用的比较多
因此做了一下总结,列出常见的撤销命令。
1 git commit 之前撤销命令

下图是我未添加到暂存区的文件(也就是没有执行git add这个命令)
在这里插入图片描述
这种撤销可以直接执行git checkout -- 文件名 看一下代码示例吧(一定要加要注意 - - )
刚刚是有两个文件,执行了git checkout -- 文件名命令之后 ,只剩一个文件了,另一个文件被撤销了。
在这里插入图片描述
撤销多个文件 git checkout -- . 即可撤销多个文件

2.添加到暂存区(执行了git add 命令)该怎么撤销呢? 一起来看看吧
下图是我将文件git add .之后,已经添加到暂存区的状态(Changes to be committed)
在这里插入图片描述
现在我将添加到暂存区的文件给撤销
这里我用了命令git reset HEAD <file> file是文件名
在这里插入图片描述
我又查看了一下状态 git status 此时显示我还未添加到暂存区,若我想把add到暂存区的文件全部撤销,则可以执行git reset HEAD命令。
在这里插入图片描述

第二大情况就是 git commit 之后。此时已经提交了,只是没有推送到远程仓库

在这里插入图片描述
此时commit提交后想撤销的话,需要revert命令。git revert 命令是撤销某次操作,而在此次操作之前和之后的提交记录都会保留。

我先用git log查看一下提交记录,算了,我嫌git log打印的太多,直接用这个命令git log --pretty=oneline
下面直接出现了我近期提交的记录,而这前面黄色的一大串,则是我提交的commit id(版本号)
在这里插入图片描述
现在我将它回退到提交之前 刚刚执行的命令是 git revert 版本号
在这里插入图片描述
然后在推送到远端更新远程仓库代码,修改的文件就撤销回来了。注意的是revert奇数次生效,偶数次又回到之前的修改状态。比如一个文件内容是a,那么修改为ab,revert后文件变成了a,如果在revert后文件又还原成ab了。

我还可以使用 git reset --hard HEAD^ ^这个是指回退到上一个版本,回退到上两个版本一次类推 ^^ ,当然往上100个版本写100个^比较容易数不过来,所以写成 HEAD~100
刚刚我又从新提交了一次,现在是“demo测试二”
在这里插入图片描述
现在我将它回退到两个版本之后
--hard – 强制将缓存区和工作目录都同步到你指定的提交
在这里插入图片描述
需要注意:可以回退到某次提交,那该提交之后的提交都会回滚,不过这种覆盖是不可逆的 (可以找回:[添加链接描述](https://www.liaoxuefeng.com/wiki/896043488029600/897013573512192)),之前的提交记录都没有了。所以平时开发中尽量注意,避免使用reset。
接下来然后在提交到远端覆盖就可以了
强行推送命令git push -f origin <分支名>

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值