美文网首页初见
git惊魂操作,让代码瞬间还原!

git惊魂操作,让代码瞬间还原!

作者: 新地球说着一口陌生腔调 | 来源:发表于2020-06-06 09:18 被阅读0次

    今天更新代码发现有冲突,使用的是smartgit桌面软件操作的,在更新同事代码前我的代码commit了,但是因为再次更新代码有冲突,点击了一个rebase(重定基准)按钮后,然后就可以再次更新同事代码了。可是一运行发现自己commit的代码不见了,吓了我一跳,结果经过查资料找到了很好的办法!


    方法如下:

    1、cd 目标工程目录下,使用git reflog列出最近的git的操作记录(注意:编号越大,操作的时间越久远

    2fc7e63 HEAD@{9}: rebase: checkout origin/trunk

    937ce55 HEAD@{10}: rebase finished: returning to refs/heads/trunk

    937ce55 HEAD@{11}: rebase: 列表展示

    a531a96 HEAD@{12}: rebase: checkout origin/trunk

    9a16344 HEAD@{13}: rebase finished: returning to refs/heads/trunk

    9a16344 HEAD@{14}: rebase: 列表展示

    bb674ac HEAD@{15}: rebase: checkout origin/trunk

    c5d0fb5 HEAD@{16}: commit: 列表展示


    2、找准你出差错的commitid后,使用 git checkout [commitid] 切换到此节点  。比如  git checkout c5d0fb5就能成功导出一份工程了,代码纹丝不动的都在!这样你就能手动把文件复制到你的目标分支工程。

    3、推荐最好的办法是:git cherry-pick [commitid]

    首先切换到要提交的分支 如dev

    git checkout dev

    然后 git cherry-pick [commitid] 就可以了。


    大功告成!最后告诫程序猿们遇到代码冲突一定要小心谨慎,要不然重写一遍丢失的代码就难受了!

    相关文章

      网友评论

        本文标题:git惊魂操作,让代码瞬间还原!

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