【git】使用 git reset 回退本地的修改

一、git 概念
工作区(working):相当于我们本地的文件系统。
暂存区(staging):通过 git add 命令,将本地工作区的文件提交至暂存区。
本地仓库(local repo):通过 git commit 命令,把暂存区的所有文件提交至本地仓库。
远程仓库(remote repo):通过 git push 命令,把本地仓库的所有文件提交至远程仓库。

HEAD:通俗的讲,它指向当前分支正在使用的 commit_id,当然它还有很多其他用法,之后我们用一篇新的博文来详细讲解。

二、git reset 原理
通过 git reset --hard <commit_id> 命令修改 HEAD 的指向的 commit_id 来达到版本回退的目的。

如何查找 commit_id
方法一:使用 git log 查看历史 commit_id
方法二:通过 HEAD 命令来代替 commit_id。

HEAD~ 回退一个版本
HEAD~~ 回退两个版本
HEAD~~~ 回退三个版本
HEAD~1 回退一个版本
HEAD~2 回退两个版本
HEAD~3 回退三个版本

git reset 包涵 soft、mixed、hard 三个参数项,这三个参数项控制了 reset 的回退罗辑,下面我们来了解下这三个参数。

git reset --soft <commit_id>
git reset --mixed <commit_id>
git reset --hard <commit_id>

假定我们的 git 仓库状态如下图所示,其中:

绿色表示 to be committed 的文件,也就是未 commit 的文件。
红色表示 Untracked files 的文件,也就是未 add 的文件。

原始仓库状态
三、soft 参数项
soft 参数:回退本地仓库到指定版本,也就是只回退 commit 的文件。
执行 git reset --soft commit_B 命令后,仓库状态入下图所示:

reset soft 后的仓库状态
四、mixed 参数项
mixed 参数:回退本地仓库、暂存区到指定版本,也就是回退 commit 和 add 的文件。该参数为 reset 命令的默认参数。
执行 git reset --mixed commit_B 命令后,仓库状态入下图所示:
reset mixed 后的仓库状态
五、hard 参数项
hard 参数:回退本地仓库、暂存区、工作区到指定版本,也就是回退 commit 和 add 的文件,对于 Untracked files 的文件是不做回退的。
执行 git reset --hard commit_B 命令后,仓库状态入下图所示:
在这里插入图片描述
五、注意注意注意
对于 Untracked files 的文件是不做回退的。
对于 Untracked files 的文件是不做回退的。
对于 Untracked files 的文件是不做回退的。

回答: 当你使用git reset命令时,可以将本地代码回退到之前的某个提交状态。具体的回退操作取决于你想要回退到的提交位置。如果你想要回退到上一次提交的状态,可以使用命令git reset HEAD^。如果你想要回退到再上一次提交的状态,可以使用命令git reset HEAD^^。如果你想要回退到指定的提交位置,可以使用命令git reset <commit_id>,其中commit_id是你想要回退到的提交的ID。请注意,使用git reset命令回退本地代码时,工作区的修改仍然存在。如果你想要回退到指定提交位置并且丢弃工作区的修改,可以使用命令git reset --hard <commit_id>。然后,你可以使用git push origin <branch_name> --force命令将本地代码强制推送到远程仓库,其中branch_name是你的分支名称。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [git reset代码回退](https://blog.csdn.net/weixin_43083491/article/details/111320974)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [git代码回退方法简要总结](https://blog.csdn.net/BHSZZY/article/details/125546547)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值