git reset 和 git revert使用

本文详细解析了Git中reset和revert命令的使用场景和区别。reset用于撤销提交,将HEAD指针移至指定commit,有三种模式(--hard, --mixed, --soft);revert则创建新的commit来撤销之前的更改,避免直接修改历史。适用于恢复误提交的代码,保持仓库历史的清晰。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用背景

很多时候当我们使用git管理我们的代码仓库时,会错误的提交代码,这时候我们想要恢复到我们提交之前的样子,这就需要使用

git reset 和 git revert。

使用区别

git reset

大家都知道HEAD是指向当前分支的最新commit,而git reset 就是将HEAD指向你想要指向的位置,并且抛弃掉这之后的提交。

1.查看git提交记录 
git log

2.回退到想要回退的conmmitId
git reset --hard commitId  

3.用“git push”会报错,因为我们本地库HEAD指向的版本比远程库的要旧:
git push -f

commitId是你想要回退到的版本。

git reset有三种模式

--hard:恢复的最彻底,工作区,暂存区,仓库全部恢复;

--mixed:默认模式,暂存区,仓库恢复,只保留工作区;

--soft:最温柔,只恢复仓库,暂存区,仓库仍然保留;

如果不小心git reset --hard

不要慌

git reflog可以查看所有分支的所有操作记录(只要本地磁盘git记录没有被清除),而git log只是显示提交记录并不会看到git reset的结果。这时候就可以看到被git reset删除的commitId,从而通过git reset重新让head指向被删除的commitId。

git revert

相比较与git reset而言,git revert并不会撤销抛弃之前的commit,而是通过提交修改删除掉提交到错误代码。

1.查看git提交记录
git log
2.查找到要删除的commitId
git revert -n commitId
3.将修改加入到缓存区
git add .
4.提交
git commmit -m "message"
5.提交到远程仓库,因为是新的提交,所以不会出现本地HEAD指向旧于远程分支的HEAD指向
git push

参考文章:

1.Git恢复之前版本的两种方法reset、revert(图文详解)_游笑天涯-CSDN博客_git revert

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值