一件关于在git上犯浑的事情记录

来源:互联网 发布:sketch mac 激活码 编辑:程序博客网 时间:2024/05/15 13:20

题记:先让我哭一会吧/(ㄒoㄒ)/~~,然后说一件自己特别犯浑的事情,最终付出5个多小时被绑在电脑前的代价,作为一名近6年的yuanyuan着实不该犯。

在沉寂大半年后,第一次动手开始着手写业务代码,写代码的感觉一点点再找回(窃喜中….),最终历时4天终于写好了功能,这本来是多么开心的事情,可以交差愉快的玩耍了。可是,可是灾难来了,步骤是这样的
(重现场景)
准备提交到远程仓库
这里写图片描述
提交完毕(正常来说应该可以去喝茶了),可是事情来了,并且一来就是两件,欲哭无泪,

  • 提交到远程仓库失败了,没有push成功,只是commit到本地仓库
  • 我发现我提交的author和committer信息有误,用到的是我在github上的信息

这里写图片描述

本来还小庆幸中,幸亏push失败,不然作者信息岂不是乱了,自诩git 命令熟练的人对这个问题还不是小儿科,我可是知道使用命git rest –hard 版本号的“大神”,于是我很快用git log找到上一次的版本号
例如这样
这里写图片描述

然后执行
这里写图片描述

问题解决了有木有,又回到最初的版本了



可当我回到eclipse中准备重新提交时,瞬间感觉天塌了,刚才我是做什么事情了,我恢复的是本地仓库,我写的代码全部因为恢复,全没了,全没啦,几十个文件的代码,马上立刻要去恢复的是不是,就当我再去执行git log的时候,发现世界安静了,刚才的版本号呢,老长老长的我又没记住,我该如何恢复那个我曾经提交的版本(此时我是不知道git reflog,知道的话就不会世界安静了)。我只能说我被吓坏了,四天的代码,没了,小心脏扑通扑通的跳,连找度娘的事情都忘了,只知道要马上弄回来,我竟然想到的是重新写,于是我喝了杯茶,开始了,痛苦的回忆代码开始了,天啊,我要哭了,怎么写啊,好像还有很多js代码,当初都是一行行的憋出来的,作为内心强大的yuanyuan,我能承受的对不对,于是时间嘀嗒嘀嗒的过去了,当我再次把一开始实现的功能实现出来后,时间已经是下午5点,好了又可以去happy了,可是就在我嘴欠跑到群里求安慰的时候,有人提到了git reflog,瞬间,心如死灰,对啊,还有reflog,我忘记了,我记起来了,有印象了。可是我的那5个小时怎么找回来,再次泪奔。

以下很重要

git reflog 可以查看所有分支的所有操作记录(包括(包括commit和reset的操作),包括已经被删除的commit记录,git log则不能察看已经删除了的commit记录

具体一个例子,假设有三个commit
commit3: add test3.c
commit2: add test2.c
commit1: add test1.c
如果执行git reset –hard HEAD~1则 删除了commit3,如果发现删除错误了,需要恢复commit3,这个时候就要使用git reflog

现在再来讲讲为什么我的eclipse提交失败,明明本地ssh已经配置成功。我百分之两百保证我用git bash 操作绝对可以免用户名密码登陆
并且我用了如下命令验证(这里我用我的github打比方)

这里写图片描述

但是我用eclipse的egit插件提交代码的时候死活push不成功,而且不断提示要我输入用户名、密码,我都一度怀疑是不是我用的不是ssh协议用的http/https协议拉的代码,可我再次验证,我没错啊,git开头的地址,那是不是我的eclipse在那玩我,自顾自的坏了,于是我重新配置了git插件,可是还是不行,彻底崩溃,天啊,不带这样戏弄我的,
直到最后我突然醒悟,是不是eclipse没有读到本地的.ssh目录下的私钥目录,可是不是默认的吗,一般都会读到啊,还有读取的配置在哪呢,好在还有度娘,最终我查到了

这里写图片描述

就是这里,默认就应该是C盘用户目录下的.ssh目录 ,可我当时的那台开发机子,不知道谁装的系统,用户目录竟然在D盘,于是它到D盘了(一口盐汽水喷死装系统的)
但我生成的公钥、私钥我设定在了C盘。

当然最终我改好了,也提交成功了,万幸,希望各位yuanyuan不要重蹈我的覆辙。

5 0
原创粉丝点击