我的 Serverless 实战 —一次代码丢失对git的思考

我是歌谣,放弃很容易,但是坚持一定很酷

前言

某年某月某日的某一晚 当然就是这几天 发生了一件对于程序员来说不好的大事

就是代码丢失了 操作 基本上是这样

也就是一个小时的的代码丢失了

我的 Serverless 实战 —一次代码丢失对git的思考_第1张图片

操作是这样 首先sourcetree 重置到当前提交分支 当时多重置了一个节点

紧接着本地的代码就发生了微小变化 然后git fetch origin

 

初始化解决方案

当时自己的解决方案就是丢了就丢了

花了40分钟

开始 解决冲突

后来看了看

git fetch origin

可以运行 git fetch origin 来同步远程服务器上的数据到本地。该命令首先找到 origin 是哪个服务器(

从上面获取你尚未拥有的数据,更新你本地的数据库,然后把 origin/master 的指针移到它最新的位置上。

原来这样呀

总之丢了几个小时代码

全部手搓解决

 

最优解决方案

当时就按照这个方案解决的

第二天 找了别人 说可以还原

首先第一行命令

git reflog

可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)

当然没用

git log

git log 命令可以显示所有提交过的版本信息

紧接着就可以看到所有节点的信息

此时就需要回退版本

git reset --hard

git reset就是当我们提交了错误的内容后进行回退使用的命令。

git reset 版本号,就是回退到该版本号上。

通常我们使用

git reset HEAD就是回退到当前版本。git reset HEAD^回退到上一版本

这个时候版本已经回退了

没有丢失

然后

git fetch origin

可以运行 git fetch origin 来同步远程服务器上的数据到本地。该命令首先找到 origin 是哪个服务器(

从上面获取你尚未拥有的数据,更新你本地的数据库,然后把 origin/master 的指针移到它最新的位置上。

 你可以想 怎么又是同一命令

但是实际操作就是这样

接着

git rebase

git rebase用于把一个分支的修改合并到当前分支。

 接着之后 看到有冲突

但是代码中一直找不到

这个时候就用

git rebase --abort

git rebase --abort进行撤销操作

 然后继续

git rebase

git rebase用于把一个分支的修改合并到当前分支。

这时候就看到很多冲突了

vs code对应修改

<<<<<<< Updated upstream

            

              标记误报

            

            

              查看详情

            

=======

              标记误报

              查看详情

>>>>>>> Stashed changes

这里只给出冲突一部分

然后解决就可以了

最后提交成功 git还是有很多讲究呢

 

备注:其余工作命令

git commit -amend

追加改动到提交 

一开始来用了

git checkout

切换分支

git add

添加到工作区

git commit

添加介绍

后续

git的操作方式有很多 慢慢总结并不断提升自己吧  以上均来源于工作经历  掌握git对于日常的开发有很大帮助

我是歌谣 放弃很容易 但是坚持一定很酷

你可能感兴趣的:(我的 Serverless 实战 —一次代码丢失对git的思考)