面试官:Git 如何撤回已 Push 的代码?问倒一大片。。。

年已经过完了,最近不少读者都在寻找今年的新机会为什么呢?因为啊,有不少是公司业务 2023 年停滞不前或者项目盈利乏力,降薪了、裁员了、相关的待遇也减少了不少,而且工作量增加了很多,导致余下的一部分人也人人自危,生怕哪天被裁员了。

所以,时至年初,有不人都在观望新的机会,虽说今年工作机会不多,面试也相当激烈,不过机会总是给有准备的人的,也有不少人现在都拿到了今年的开春offer了。

这不,前两天,一读者带回来的一个经典的面试题,今天,给大家分享一下,如果有跳槽找工作意向的朋友可以积累一下。

面试官问:Git 如何撤回已 Push 的代码?如果问你,你会吗?

有两种解决方法,如下:

  • 最简单粗暴的方法

  • IDEA 中 Git 较为优雅的方法

在日常的开发中,我们经常使用Git来进行版本控制。有时候,我们可能会不小心将错误的代码 Push 到远程仓库,或者想要在本地回退到之前的某个版本重新开发。图解 | git rebase使用笔记

或者像我一样,写了一些感觉以后很有用的优化方案push到线上,又接到了一个新的需求。但是呢,项目比较重要,没有经过测试的方案不能轻易上线,为了承接需求只能先把push上去的优化方案先下掉。

现在我的分支是这样的,我想要在本地和远程仓库中都恢复到help文档提交 的部分。e29b386e9396e5c03a7b963095b20e66.jpeg

最简单粗暴的方法

如果你的错误代码不是很多,那么你其实可以通过与你想要恢复到的commit进行对比,然后手动删除错误代码,然后删除不同的代码。26312adca52a67c5dbba49af5bae86a0.jpeg按住 ctrl 选择想要对比的两个commit,然后选择Compare Versions就能通过对比删除掉你想要删除的代码。【面试】面试中经常遇到的Git 操作命令

这个方案在代码很简单时时非常有效的,甚至还能通过删除后最新commit和想要退回的commit在Compare 一下保障代码一致。

但是这个方法对于代码比较复杂的情况来说就不太好处理了,如果涉及到繁杂的配置文件,那更是让人头疼。Git实战:branch分支操作详解

而且,这样还会保留错误提交的记录,对于有强迫症的我来说,有点接受不能。对此,git也有一套较为优雅的操作流程,同样能解决这个问题。Git常见命令合集

IDEA 中 Git 较为优雅的方法

1.Reset Current Branch 到你想要恢复的commit记录

00c14ff8918773c7733edc41a5dd947f.jpeg这个时候会跳出四个选项供你选择,我这里是选择hard

其他选项的含义仅供参考 ,因为我也没有一一尝试过。

Soft :#你之前写的不会改变,你之前暂存过的文件还在暂存。
Mixed :#你之前写的不会改变,你之前暂存过的文件不会暂存。
Hard :#文件恢复到所选提交状态,任何更改都会丢失。你已经提交了,然后你又在本地更改了,如果你选hard,那么提交的内容和你提交后又本地修改未提交的内容都会丢失。
keep :#任何本地更改都将丢失,文件将恢复到所选提交的状态,但本地更改将保持不变。你已经提交了,然后你又在本地更改了,如果你选keep,那么提交的内容会丢失,你提交后又本地修改未提交的内容不会丢失。

9c55ce3c5b9b7fdcc9e30f1f06abe85b.jpegc1f04c4e0cf2d076bc7c3abe4a82e944.jpeg3ccab417b12c623a226200bb972d49cf.jpeg然后,之前错误提交的commit就在本地给干掉了。但是远程仓库中的提交还是原来的样子,你要把目前状态同步到远程仓库。也就是需要把那几个commit删除的操作push过去。每个人都应该知道的25个Git命令

打开push界面,虽然没有commit需要提交,需要点击Force Push,强推过去。搭建服务器上的GIT并实现自动同步到站点目录(www)

cca1369860150727ddc9c2bb946a06f5.jpeg需要注意的是对于一些被保护的分支,这个操作是不能进行的。需要自行查看配置,我这里因为不是master分支,所以没有保护。54eb856d5b36617c0268e7951739d61b.jpeg可以看到,远程仓库中最新的commit只有我们的help文档 。在其上的三个提交都没了。3a7c49e1332940b4b99f67510647f4bc.jpeg注意: 以上使用的是2023版IDEA,如果有出入的话可以考虑搜索使用git命令。

e9e9b656e4f157209ec76a07a3fcd1c7.jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值