Git 版本控制 -- 理解 Git Rebase 指令

本文深入解析Git中reset命令的三种模式(--soft, --mixed, --hard),并详细说明了每种模式下commit信息、index信息及源码的回退情况。通过实例演示如何使用gitreset进行代码回退,并提醒在使用--hard模式时的注意事项。

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

git reset 使用场景为丢弃 commit 后的 commit信息、index 信息或者源码。

git reset 三种模式

 - -soft
 - -mixed(默认)
 - -hard

git reset - -soft HEAD~n或commit id

回退项: commit 信息
回退情况: 当前 commit 与目标 commit 信息之间的 commit 信息丢失,此时index 信息未发生改变 ,此时的状态为 —- stage 状态后未 commit 的状态,执行 git commit 将本次操作提交到本地分支。

git reset (- -mixed)HEAD~n或commit id

回退项: index 信息 (暂存区信息)、commit 信息
回退情况: 当前 commit 与目标 commit 信息之间的 commit 信息丢失,此时index 信息也发生改变,此时的状态为 —- unstage状态,需执行git add . 将文件变更暂存,执行git commit将本次操作提交到本地分支。

git reset - -hard HEAD~n或commit id

回退项: index 信息、commit信息、源码
回退情况: 当前 commit 与目标 commit 信息之间的 commit信息、index信息、源码全部丢失。

此时如果想把现在的代码块提交到远端,使用以下命令:

git push origin HEAD --force

注意,此命令会使远端代码也进行回退,慎用。

git reset 使用

git reset [模式] commit Id

使用指令 git reflog 查看操作历史,定位想要恢复的 commit Id
根据情况执行 git reset commitId
一般恢复为源码恢复,其他两种模式没有恢复的价值(个人认为),所以一般的执行为git reset –hard commit Id

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值