git撤销历史节点
程序员文章站
2022-03-21 13:53:42
...
在开发时,总会遇到这样的问题,突然发现很久以前的一次提交或merge出了问题。但是后面有一大堆节点。
总不可能一怒全部
git reset --hard 版本号 //回退到历史某一个版本。
而且这么做也是无效的,为什么是无效的呢?
因为git是分布式的,每个人的本地都有一个版本库,这个版本库包含这所有的每次提交操作。版本回退后,需要每一个人都版本回退,并且重新复制粘贴自己的工作。
只要有一个人没有这么做,直接推送,那么之前所有的版本回退就白做了。
但是,不可能指望着,团队中每个人都会git操作,并且愿意重做自己的工作。
怎么办呢?
撤销有问题的提交。
git revert (commit操作对应的版本号) ()是为了表示结构
注意:是撤销有问题的提交,就是撤销了有问题的commit操作。不是推送操作。
而且把这次撤销相当于手工恢复所有那次commit所修改的代码。有冲突的话需要合并冲突,并且进行一次commit操作。
如果在本地提交了 >=2 次。
那么在推送时就会出现merge操作,如下图所示:
我们可以看到,除了推送本地最新的提交,还做了一件事,就是把本地分支和并到远程。
我们点开合并操作就可以看到
这里面不止一次提交,当执行
git revert (merge操作对应的版本号)
时,就会给出提示信息,问到底撤销哪一次提交,所以不要使用merge对应的版本号,
应该直接使用commit操作对应的版本号。
修改完成 -> commit -> push
大功告成!!!