本地仓库代码提交后回退
提交到本地仓库后
![在这里插入图片描述](https://img-blog.csdnimg.cn/0ad7fe3100b540e7b1a0950ef46bcdb8.png) 点击提交后会保存在本地仓库
本地仓库的回撤
-
找到git的提交记录 ![在这里插入图片描述](https://img-blog.csdnimg.cn/bbbaf611b1dd405a9ae4aa578edd4ca6.png) -
右键选择撤销还原 ![在这里插入图片描述](https://img-blog.csdnimg.cn/4270d42555784332bb3a39610c7b1867.png) -
撤销还原后会出现提交文件,成功将本地仓库的文件移除,但是本地的错误代码仍然存在 ![在这里插入图片描述](https://img-blog.csdnimg.cn/345cd366733e41efb8c9ef37f8eaea61.png) -
如果想撤销提交到本地仓库的错误文件,同时删除本地错误代码的更改,则选择还原提交或删除提交 ![在这里插入图片描述](https://img-blog.csdnimg.cn/cb65a161590140f0b8951a43bb602c69.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/fb9808794a534ecebda6f9bf761930bd.png)
远程仓库代码提交后回退
使用快捷键 ctl+shift+k 提交本地代码到远程仓库
![在这里插入图片描述](https://img-blog.csdnimg.cn/b5f82e82d4d44d0581952c954532c855.png) 点击推送后提交到远程仓库
代码的回退
- 点击错误代码提交记录的前一个记录,右键选择将当前分支重置到此处…
注意:选择将当前分支重置到此处…,执行的git 中reset命令,如果你的更改还没有共享给别人,git reset 是撤销这些更改的简单方法。当你传入 HEAD 以外的其他提交的时候要格外小心,因为 reset 操作会重写当前分支的历史。正如 rebase 黄金法则所说的,在公共分支上这样做可能会引起严重的后果。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/277893e1055a498bbc6824c6e88ff2a2.png)
- 会出现四种选择
![在这里插入图片描述](https://img-blog.csdnimg.cn/076dec535f844e6ba3b7721dd16d0f98.png) - 选择保留和硬则会将本地的错误代码删除
![在这里插入图片描述](https://img-blog.csdnimg.cn/305aef61b5a0452090fb58ed809221a9.png) 选择软和混合会保留本地的错误代码 ![在这里插入图片描述](https://img-blog.csdnimg.cn/e0220d99fd6c4fb38e97b1400046635c.png) 以上的四种选择执行后都是改变本地仓库的状态,远程仓库并没有发生改变,执行完以上功能后需要在控制台中强制提交,idea此时不支持强制提交,HEAD代表分支名称
git push origin HEAD --force
提交成功后错误代码将会被更改 执行前 ![在这里插入图片描述](https://img-blog.csdnimg.cn/d3359320287e4f82acab708e29f69a8f.png) 执行后 ![在这里插入图片描述](https://img-blog.csdnimg.cn/89da539e4e70420a9e2a3d3ce1ea8f71.png)
公共分支一定要使用这个还原提交,**将当前分支重置到此处…**这个会造成其他人的代码也回退
也可以使用还原提交,使用还原提交时需要选中当前分支,选择将当前分支重置到此处…选中的是前一个提交记录,注意区分,效果是删除错误代码,并将修改的代码存到本地仓库,之后可以重新提交到远程分支,这个不会将别人的代码回退
注意:使用还原提交,使用的其实是git的revert命令,相比 git reset,它不会改变现在的提交历史。因此,git revert 可以用在公共分支上,git reset 应该用在私有分支上。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/3528c946a5864f339dda40746375e2eb.png)
以上回退后idea不支持强制提交代码,只能使用命令“git push origin HEAD --force”进行提交,比较麻烦,以下是设置idea支持强制提交
![在这里插入图片描述](https://img-blog.csdnimg.cn/eabfecc8a65f423eb2ec4d8429d339e8.png)
将受保护的分支删除或者修改为其他分支
![在这里插入图片描述](https://img-blog.csdnimg.cn/fedc7baa36f04b29a11403296a157479.png)
回滚命令Reset、Checkout、Revert辨析
|