黑龙江建设监理协会网站,中国建设银行网上银行网站特点,电子商务平台需求分析,网站开发通常叫什么部门时光不能回退#xff0c;Git却允许我们改变历史。
想要让Git回退历史#xff0c;有以下步骤#xff1a;
使用git log命令#xff0c;查看分支提交历史#xff0c;确认需要回退的版本
使用git reset --hard commit_id命令#xff0c;进行版本回退
使用git push origin命…
时光不能回退Git却允许我们改变历史。
想要让Git回退历史有以下步骤
使用git log命令查看分支提交历史确认需要回退的版本
使用git reset --hard commit_id命令进行版本回退
使用git push origin命令推送至远程分支
快捷命令
回退上个版本git reset --hard HEAD^
【注HEAD是指向当前版本的指针HEAD^表示上个版本,HEAD^^表示上上个版本】
如果修改到的文件比较少我们可以不通过命令回滚的方式手动删除之前的修改再进行提交。
reset与revert区别
reset和revert都可以用来回滚代码。但他们是有区别的准确来说reset是用来回退版本而revert是用来还原某次或者某几次提交。
举个例子比如在master分支有以下提交历史:
42eae13 (HEAD - master) 第四次修改
97ea0f9 第三次修改
e50b7c2 第二次修改
3a52650 第一次修改
可以看到master最新版本为第四次修改。
如果发现在第四次修改有错误需要回滚到第三次修改就可以用reset命令来回退。
执行 git reset --hard 97ea0f9,这个时候git的提交历史变为:
97ea0f9 (HEAD - master) 第三次修改
e50b7c2 第二次修改
3a52650 第一次修改
可以看到master当前指向97ea0f9这个版本我们回到了第三次修改。
使用reset命令Git会把要回退版本之后提交的修改都删除掉。要从第四次修改回退到第一次修改那么会删除第二、三、四次的修改。【注这里并不是真正的物理删除】
那如果发现第三次修改有错误想要恢复第三次修改却要保留第四次修改呢
这个时候就可以用revert命令
git revert -n 97ea0f9
git commit -m 恢复第三次修改
Git提交历史会变成
33b8b30 (HEAD - master) Revert 恢复第三次修改
42eae13 第四次修改
97ea0f9 第三次修改
e50b7c2 第二次修改
3a52650 第一次修改
实际上Git把第三次修改从提交中剔除(还原)了还保留了第四次修改并且产生了新的commit_id。
在实际生产环境中代码是基于master分支发布到线上的会有多人进行提交。可能会碰到自己或团队其他成员开发的某个功能在上线之后有Bug,需要及时做代码回滚的操作。
在确认要回滚的版本之后如果别人没有最新提交那么就可以直接用reset命令进行版本回退否则就可以考虑使用revert命令进行还原修改不能影响到别人的提交。
使用reset还是revert需要考虑实际的适用场景没有绝对化。
上面提的并不是真正的物理删除是因为Git会把分支的每次修改记录都会保留下来比如有某次的commit,某次的reset等。而使用git reflog show命令,可以查看完整的提交历史
只要有commit_id我们就能恢复任意版本的代码在各版本之间来回穿梭。