ToB企服应用市场:ToB评测及商务社交产业平台

标题: Git 如何撤回已 Push 的代码? [打印本页]

作者: 张春    时间: 2024-6-14 23:57
标题: Git 如何撤回已 Push 的代码?
在一样寻常的开发中,我们经常使用Git来举行版本控制。偶然候,我们可能会不小心将错误的代码 Push 到远程堆栈,大概想要在当地回退到之前的某个版本重新开发。
大概像我一样,写了一些感觉以后很有效的优化方案push到线上,又接到了一个新的需求。但是呢,项目比力告急,没有颠末测试的方案不能轻易上线,为了承接需求只能先把push上去的优化方案先下掉。
现在我的分支是这样的,我想要在当地和远程堆栈中都恢复到help文档提交的部门。

1、根本的手动操作(比力笨,不保举)

   这样的操作非常不保举,但是如果你不相识git,确实是我们最轻易理解的方式。
  如果你的错误代码不是很多,那么你其实可以通过与你想要恢复到的commit举行对比,然后手动删除错误代码,然后删除不同的代码。

   按住 ctrl 选择想要对比的两个commit,然后选择 Compare Versions 就能通过对比删撤消你想要删除的代码。
  这个方案在代码很简单时时非常有效的,甚至还能通过删除后最新commit和想要退回的commit在Compare一下保障代码划一。
但是这个方法对于代码比力复杂的环境来说就不太利益理了,如果涉及到繁杂的设置文件,那更是让人头疼。只能通过反复的Compare Version来举行对比。
这样的手动操作显然显得有些笨拙了,对此git有一套较为优雅的操作流程,同样能解决这个问题。
2、git Revert Commit(保举)


同样的,我第三次提交了错误代码,而且已经push到远程分支。想要撤回这部门代码,只需要右键点击错误提交记载

git自动产生一个Revert记载,然后我们会看到git自动将我第三次错误提交代码回退了,这个其实就相称于git帮我们手动回退了代码。

后续,只需要我们将本次改动push到远程,即可完成一次这次回退操作,

   revert相称于自动帮我们举行版本回退操作,而且留下改动记载,非常安全。这也是评论区各位大佬非常保举的。
  但是revert还是存在一点不足,即一次仅能回退一次push。如果我们有几十次甚至上百次的记载,一次次的单击回退不仅费时费力而且还留下了每次的回退记载,我个人觉得revert在这种环境下又不太优雅。
3、增加新分支(保举撤回较多环境下使用)

如果真的需要回退到上百次提交之前的版本,我的发起是直接新建个分支。
在想要回到的版本处的提交记载右键,点击new branch



   新建分支的操作仅仅增加了一个分支,既能保留原来的版本,又能安全回退到想要回退的版本,同时不会产生太多的回退记载。
  但是此操作仍旧发起慎用,因为这个操作执行多了,分支管理就又成了一大难题。
  4、Reset Current Branch 到你想要恢复的commit记载(不太安全,慎用)


这个时候会跳出四个选项供你选择,我这里是选择hard
其他选项的含义仅供参考,因为我也没有一一尝试过。



然后,之前错误提交的commit就在当地给干掉了。但是远程堆栈中的提交还是原来的样子,你要把目前状态同步到远程堆栈。也就是需要把那几个commit删除的操作push已往。
打开push界面,虽然没有commit需要提交,需要点击Force Push,强推已往。

需要注意的是对于一些被掩护的分支,这个操作是不能举行的。需要自行查看设置,我这里因为不是master分支,以是没有掩护。

可以看到,远程堆栈中最新的commit只有我们的help文档。在其上的三个提交都没了。

注意:以上使用的是2023版IDEA,如果有出入的话可以考虑搜索使用git下令

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4