python– 如何工作git ls-files脚本

python– 如何工作git ls-files脚本,第1张

概述怎么看看git ls-files的脚本?是否可以修复索引文件或从corupted索引文件中提取文件列表?也许可以使用正则表达式?最好是在python 2.7.6中最佳答案根据腐败程度,这可能是也可能不可行. Git的数据结构和相关工具更适合于检测腐败而不是修复它.特别是,索引本身不是存储库的一部分,它是从当前内容派生的,因此在大多数情况下,最好删除它并执行g

怎么看看git ls-files的脚本?
是否可以修复索引文件或从corupted索引文件中提取文件列表?
也许可以使用正则表达式?最好是在python 2.7.6中最佳答案根据腐败程度,这可能是也可能不可行. Git的数据结构和相关工具更适合于检测腐败而不是修复它.

特别是,索引本身不是存储库的一部分,它是从当前内容派生的,因此在大多数情况下,最好删除它并执行git reset以重新创建它.无论谁读到你的问题,都可能想知道你的存储库是如何进入该状态的.

考虑到这一点,这里有几个想法:

索引的最后20个字节是到该点为止的文件内容的sha1.如果那些已损坏,您可以使用十六进制编辑器覆盖它们.

~$python3>>> data = open('.git/index','rb').read()>>> data[-20:].hex()'e211d8f60209ca8571c2acc73f9a24ef523b5fa3'>>> hashlib.sha1(data[:-20]).hexdigest()'e211d8f60209ca8571c2acc73f9a24ef523b5fa3'

这可以解决由脑损伤工具引起的简单损坏.

如果你真的想从一个完全损坏的索引文件中恢复任何东西,你可能想要:

>在参考实现中阅读index-format.txt.
>查看libgit2中的parse_index例程.
>查看索引文件导致的特定错误.
>小心地修补该例程,以便在不崩溃的情况下继续处理坏数据.

另一种方法可能是使用strings实用程序,如果您只想查看文件名列表.您将丢失相关的二进制信息(并且某些二进制信息将包含可打印的ASCII垃圾). 总结

以上是内存溢出为你收集整理的python – 如何工作git ls-files脚本全部内容,希望文章能够帮你解决python – 如何工作git ls-files脚本所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1206237.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-04
下一篇2022-06-04

发表评论

登录后才能评论

评论列表(0条)

    保存