本地代码被删场景还原,git命令之找回代码

使用场景,希望大家不要犯这样的错

事情是这样的,在公司开发,由于电脑太破,公司给我换了一台配置好点的电脑,但是电脑是别人用过,我装好环境后,由于电脑本来就有git,我直接先拉了代码,然后清了git账号,接下来问题就来了。(记住一定一定要,先清git账号和邮箱再拉代码进行开发)

本地代码什么情况下会被误删

当我开发完之后提交代码,只能add却无法commit,提示我的分支是干净的,没有追踪到,网上给我答案是强制推送,于是我强制推送,代码直接被删了,于是我慌了,我下意识的看看git窗口,突然发现…
在这里插入图片描述
我压根没有这个分支,这个状态应该还是别人的账号,由于分支没有对应起来,本地仓库也没有存进去,强制推送直接造成了代码丢失,重写吗?重写是不可能的,接下来分享一下我是如何找回的吧。

git找回本地代码

这个时候我想到第一件就是打印日志,当我用git log的时候发现我错了,这个命令只能打印远程仓库的每一次的提交记录,我这个代码可是在本地就丢失了啊,根本找不到记录,接下来我执行的另一个命令git reflog。
在这里插入图片描述
这个命令会打印你每次本地提交的记录,涂鸦的地方就是你的本地版本id,你只需要找到要回到的那个版本就可以了,执行下面这个命令。
在这里插入图片描述
git reset --hard ‘上面说的那个本地的版本id’,执行完这个命令,丢失的代码就找回来了,但是现在这个分支不是我的分支啊,这个时候我切换到master分支我发现还是刚拉下代码时候的状态,十分干净,于是切回到之前的分支(别人的账号的状态),于是我执行下面的命令。

// 就是把当前回退回来的版本的代码,复制一份并切换到我账号的dev分支上
git checkout -b dev
//因为别人账号上的代码我无法管理,无法合并,无法push

因为我一个开发不需要那么多分支,于是切换回master分支上执行了以下命令

// 就是把dev上的回退回来的的代码,合并到master分支上来
git merge origin/dev
//因为我是单人开发,只有一个分支对应了远程分支。

既然代码已找回回到正轨,后面的操作就不用我说了把。直接常规git三连发就行了。

猜你喜欢

转载自blog.csdn.net/m0_52313178/article/details/119065815