美文网首页
Mac 上传代码到码云,push失败,代码离奇丢失

Mac 上传代码到码云,push失败,代码离奇丢失

作者: MQ_Twist | 来源:发表于2018-06-19 09:55 被阅读53次

一个被终端坑的程序猿

前言

故事发生在端午节放假公司的人都走后。笔者一直在使用SVN,git少有了解,今天第一次尝试用终端进行git代码提交到码云,为了以防有问题,我还专门整个小demo试了下,很顺利,于是乎,我就进行我的代码提交。由于小demo的成功的原因,我没有对我的代码进行备份(鬼使神差的没有备份),然后就一步两步,一步两步的提交了。

第一步

git init

初始化本地仓库。没毛病,顺利。

第二步

git add .

添加所有文件。没毛病,顺利。

第三步

git commit -m "项目说明"

提交到本地仓库。没毛病!

第四步

git remote add origin + "码云项目链接"

把码云仓库链接与本地仓库关联。没毛病,离成功只差一步了的时候,我看下工程里面没有README.md文件,我就又多走了一步。

第五步

git pull --rebase origin master

把码云上的README.md文件同步到本地,然后就执行最后一步了。

第六步

git push -u origin master

那么,问题来了,失败了,这时候我就看了下码云,没有代码,好吧,那我大不了再试一下。我就看了下我的工程,一下就懵逼了,工程文件都没有了,所有的都没有了,卧槽,怎么肥事!我第一反应就是向码云反应,于是我就打了客服电话,没有人接,估计是下班了(当时晚上7点多了)。我就加了码云技术群,然后就在群里问了,群里还算活跃,马上就有人回答,问我有哪些操作,我就说了下,最后问到码云的动态里面有没有commit记录,我看了下,并没有,那人说,没有的话就找不回来了。再次懵逼!最后打电话给一个有五年工作经验的大佬,大佬问我进行了哪些操作,我就说了,他说没有毛病啊,最后问我,有没有执行过commit,我说有,他说有就行,就能找回,东西还都在本地,心里石头落地了。这时候码云群里一个大佬私聊我,就给我2行代码然后就找回了。

解决方法

git reflog

可以查看所有分支的所有操作记录(包括commit和reset的操作),包括已经被删除的commit记录。这时候看到了我的commit记录,以及id。

git reset —hard + id

强制回退到某次commit之前的状态,因为我是第一次提交,所以使用了这行命令。如果不是第一次的话,这行命令慎用。

不死心

代码找回后,我心有不甘,觉得自己的操作没有错,我就备份了一下,然后再次上传,成功了,心里一万只草泥马本奔腾。

后记

虽然第一次使用git的时候有点小插曲,不过还是觉得git很好用, 自己的一次疏忽,学会了如何找回,也算是有所收获,于是记了下来,希望也能帮助我这样的git小白。

Git常用命令大全

相关文章

网友评论

      本文标题:Mac 上传代码到码云,push失败,代码离奇丢失

      本文链接:https://www.haomeiwen.com/subject/zyfveftx.html