git三种回滚方式--soft,hard,mixed(附优秀参考网址)

1.soft

--soft参数告诉Git重置HEAD到另外一个commit,但也到此为止。如果你指定--soft参数,Git将停止在那里而什么也不会根本变化。这意味着index,working copy都不会做任何变化,所有的在original HEAD和你重置到的那个commit之间的所有变更集都放在stage(index)区域中。

2.hard

--hard参数将会blow out everything.它将重置HEAD返回到另外一个commit(取决于~12的参数),重置index以便反映HEAD的变化,并且重置working copy也使得其完全匹配起来。这是一个比较危险的动作,具有破坏性,数据因此可能会丢失!如果真是发生了数据丢失又希望找回来,那么只有使用:git reflog命令了。makes everything match the commit you have reset to.你的所有本地修改将丢失。如果我们希望彻底丢掉本地修改但是又不希望更改branch所指向的commit,则执行git reset --hard = git reset --hard HEAD. i.e. don't change the branch but get rid of all local changes.另外一个场景是简单地移动branch从一个到另一个commit而保持index/work区域同步。这将确实令你丢失你的工作,因为它将修改你的work tree!

3.mixed(default)

--mixed是reset的默认参数,也就是当你不指定任何参数时的参数。它将重置HEAD到另外一个commit,并且重置index以便和HEAD相匹配,但是也到此为止。working copy不会被更改。所有该branch上从original HEAD(commit)到你重置到的那个commit之间的所有变更将作为local modifications保存在working area中,(被标示为local modification or untracked via git status),但是并未staged的状态,你可以重新检视然后再做修改和commit

参考文章:

https://www.bootcss.com/p/git-guide/

https://git-scm.com/book/zh/v2

内容概要:本文详细介绍了Git版本回滚操作的方法和步骤,包括已将错误代码提交到远程仓库的情况以及仅提交到暂存区的情况。对于已推送至远程仓库的错误提交,可通过`git log --oneline -10`查看提交记录,使用`git reset --hard`指定版本号进行本地回滚,再用`git push origin master --force-with-lease`强制推送到远程仓库。如果错误代码仅提交到暂存区,则同样先通过`git log --oneline -10`查找目标版本,使用`git reset --hard`、`git reset --soft`或`git reset --mixed`分别实现彻底丢弃修改、保留改动在暂存区或工作区的回滚方式。此外,文章还讲解了如何通过`git revert`命令撤销特定版本的提交,并完成最终的推送。 适合人群:对Git基本操作有一定了解的开发者,尤其是遇到代码提交错误需要进行版本回滚操作的研发人员。 使用场景及目标:① 当代码已提交到远程仓库但发现错误时,掌握正确的回滚方法以修正错误;② 在代码仅提交到暂存区的情况下,根据实际需求选择合适的回滚方式;③ 学习如何撤销某次提交而不影响其他提交记录。 阅读建议:本文提供了详细的Git版本回滚操作指南,建议读者结合自己的项目情况进行练习,同时注意备份重要数据,避免误操作导致的数据丢失。在实际操作前,最好先在一个测试分支上尝试这些命令,确保理解每一步骤的作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值