一、说明
开发过程中往往会遇到提交错误、错误代码、版本检查对比等情况,此时为了恢复分支干净,可以采用 git reset
。
二、使用场景
- 1、错误代码提交,需回退
提交代码期间发现代码存在严重错误,此时暂时合并主分支,回退提交。
- 2、分支提交错误,需回退
需求过多,分支过多,来回切换时往往会提交错,需要做好备份,回退代码重新提交。
- 3、代码检查与版本管理
(1)协作开发时,预先提交代码,当同步时发现未先拉取代码导致存在冲突等情况需要重新整合。
(2)检查往期代码排查某版本漏洞,或者做代码对比时,可以检出某个节点调试对比。
三、使用方式
- 指令与说明
多用多熟悉
// 强制检出 ———— 直接回滚还原到某个节点
git reset --hard 35e4c480
// 分支冲突以及错误解决:
// 1、备份分支 git checkout branch
// 2、切回原分支执行强制检出还原到正确节点
// 3、提取备份分支提交的记录到当前分支
git cherry-pick 20d36bbf
// 存在merge冲突解决后rebase提交,无冲突直接提交
git push
// 已提交远程的代码修改正确无误后,强推覆盖即可(强调:做好备份、以防万一)
git push -f origin/master
-
参数介绍
commit-id:代表git版本号,如上35e4c480
、20d36bbf
。 -
其他(备注)
reset有三种模式
--hard
、--mixed
、--soft
,一般我都采用--hard
,谨慎一点采用--soft
暂存历史提交记录, 不过--hard
是彻底还原到指定提交节点的状态且无法找回,除非你未更改远程或有分支备份,有一定风险性。
了解更细节的说明可访问如下链接:
https://www.jianshu.com/p/c6927e80a01d
网友评论