git找回commit

由于一些原因,本地仓库中的一个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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值