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

今天更新代码发现有冲突,使用的是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惊魂操作,让代码瞬间还原!)