由于一些原因,本地仓库中的一个commit没有提交到远程仓库,原来丢失commit一般通过
git reflog
这条命令可以吧head最近到更新显示出来, 但是好像只能显示22条Head的更新,Google了一下找到了下面的命令
git fsck --lost-found
这条命令就是找到哪些没有提交的commit,如图
这条命令打印的commit没有规律,只能通过
git show
一个一个查看,效率太低,用python写了一个脚本,用于打印出没有提交的commit的注释
#coding=utf-8
'''
用于查找并打印丢失的commit
文件放入git相关目录
Time:2016.05.23
Version:Python 2.7.10
Author:lchj
'''
import os
import string
search_command = 'git fsck --lost-found'
show_commid="git show "
r = os.popen(search_command)
lines = r.readlines()
for line in lines:
strline = str(line);
if "commit" in strline:
strsha1 = strline.strip()[strline.index("commit")+6:]
r = os.popen(show_commid + strsha1)
infos = r.readlines()
for info in infos:
infostr = str(info)
if("diff" in infostr ):
break
print(infostr),
执行python就可以显示本地所有的丢弃的commit