您的位置:首页 > 其它

git rebase后丢失本地commit记录

2016-08-03 15:20 375 查看
问题描述:

提交代码时,rebase了两次,本地commit记录丢失了

两种解决方法: (原理是一样的)

 找到项目目录下的git文件 .git\logs\refs\heads\branchname

0000000000000000000000000000000000000000 d3fc5265291c1b4b9fd495d629ddfd9463178938 liuxiaobin <lxb234@qq.com> 1470015375 +0000   branch: Created from
HEAD
d3fc5265291c1b4b9fd495d629ddfd9463178938 6026046555b2ff1a39aa5c8e47d4857f52d1beb0 liuxiaobin <lxb234@qq.com> 1470200876 +0000   commit: [routeplanrul
e] Changed query interfaces
6026046555b2ff1a39aa5c8e47d4857f52d1beb0 6c6245fbd95a58ac2ec2f0de3835f448b4ac8593 liuxiaobin <lxb234@qq.com> 1470204796 +0000   commit (amend): [rout
eplanrule] Changed query interfaces
6c6245fbd95a58ac2ec2f0de3835f448b4ac8593 70baaefd36853e48622f0083af140251936aabf7 liuxiaobin <lxb234@qq.com> 1470204927 +0000   commit (amend): [rout
eplanrule] Changed query interfaces
70baaefd36853e48622f0083af140251936aabf7 25857484410570a1208bdc9a3a7ea4b84151c4a1 liuxiaobin <lxb234@qq.com> 1470204941 +0000   rebase finished: refs


或者直接执行命令

git reflog


97f842a HEAD@{0}: rebase finished: returning to refs/heads/my_recovery_rule
97f842a HEAD@{1}: rebase: [routeplanrule] Changed query interfaces
2585748 HEAD@{2}: checkout: moving from my_recovery_rule to 25857484410570a1208bdc9a3a7ea4b84151c4a1^0
5175298 HEAD@{3}: checkout: moving from master to my_recovery_rule
2585748 HEAD@{4}: checkout: moving from my_recovery_rule to master
5175298 HEAD@{5}: commit (amend): [routeplanrule] Changed query interfaces
6c6245f HEAD@{6}: checkout: moving from all_key_date to my_recovery_rule
2585748 HEAD@{7}: checkout: moving from recovery_my_code to all_key_date
70baaef HEAD@{8}: checkout: moving from all_key_date to recovery_my_code
2585748 HEAD@{9}: checkout: moving from master to all_key_date
2585748 HEAD@{10}: checkout: moving from all_key_date to master
2585748 HEAD@{11}: checkout: moving from master to all_key_date
2585748 HEAD@{12}: checkout: moving from all_key_date to master
2585748 HEAD@{13}: rebase finished: returning to refs/heads/all_key_date
2585748 HEAD@{14}: checkout: moving from all_key_date to 25857484410570a1208bdc9a3a7ea4b84151c4a1^0
70baaef HEAD@{15}: commit (amend): [routeplanrule] Changed query interfaces
6c6245f HEAD@{16}: commit (amend): [routeplanrule] Changed query interfaces
6026046 HEAD@{17}: checkout: moving from master to all_key_date
2585748 HEAD@{18}: pull: Fast-forward
d3fc526 HEAD@{19}: checkout: moving from all_key_date to master
6026046 HEAD@{20}: commit: [routeplanrule] Changed query interfaces
d3fc526 HEAD@{21}: checkout: moving from master to all_key_date
d3fc526 HEAD@{22}: checkout: moving from new_temp_new to master
e1ab4e7 HEAD@{23}: checkout: moving from master to new_temp_new
d3fc526 HEAD@{24}: checkout: moving from new_temp_new to master
e1ab4e7 HEAD@{25}: checkout: moving from master to new_temp_new


 只要新建一个分支,找回前一行commit的代码就可以了

 

$ git co -b my_recovery ci-id (测试过,可行)

git checkout -b my_recovery_branch 6c6245fbd95a58ac2ec2f0de3835f448b4ac8593


或者用reset (Suppose the old commit was HEAD@{5} in the ref log)

git reset --hard HEAD@{5} (未测试)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: