git 强制pull_我用了一条Git命令,帮助同事免去了失业的风险

论坛 期权论坛 脚本     
已经匿名di用户   2022-5-29 19:11   1126   0

开场白

人生就像一盒巧克力,你永远不知道下一颗是什么味道。

故事背景

同事昨天写了一天的代码,等到快要下班时候,要急着回家,然后拉了下代码,匆忙之中忘了提交本地代码,其中有一个类另外一个同事也做了修改,然后提交到远程仓库。

结果本地代码被pull拉去后给覆盖了,今天发现代码丢失后,同事如热锅的蚂蚁,如果代码找不回来。要重写是小事,万一因为这耽误了工作进度,可能面临失业的危机。同事虽然也有好几年开发经验,但是怎么见过这种阵仗,平常的开发都是Git commit ,pull ,push ,然后就是合并下冲突。代码被强制更新还是大姑娘上桥-头一回

于是找到了拥有多年使用git经验的我,请求我想想办法,一定要把代码给他找出来,并且给出了一顿饭的诱惑。

分析问题-复盘

按我的经验,如果没提交合并,一般都会提示提交。如果强制提交,会先保存在暂存区stash。为了稳妥起见,我让他重新模拟一遍之前的操作,当天拉代码时候,果然出现了以下提示。

cfc0ffde19efc179b0ed54b49344199d.png

由于他用的苹果图形化界面,结果直接默认了stash ,他也没有注意,结果直接把他的代码给覆盖了。

git stash 简介

git stash就可以将你当前未提交到本地(和服务器)的代码推入到Git的栈中,这时候你的工作区间和上一次提交的内容是完全一样的,所以你可以放心的修Bug,等到修完Bug,提交到服务器上后,再使用git stash apply将以前一半的工作应用回来。可以把stash区理解为一个本地仓库的缓存仓库。图解

883249418d1f8f503d33957c2f25f3be.png

具体步骤

  1. git stash list 查看暂存列表
932c3634de72c82d89f4c3f98444949b.png

2.git apply git stash apply stash@{$num}

默认使用最近的stash(即stash@{0})。如果要用第二个,git stash apply stash@{1}

拓展

如果要移除使用 git stash drop

3ad94be2110cf2e4565ecb38f3c82779.png
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP