Public Git Archive
收藏arXiv2018-03-21 更新2024-06-21 收录
下载链接:
https://github.com/src-d/datasets
下载链接
链接失效反馈官方服务:
资源简介:
Public Git Archive是由source{d}创建的一个大规模代码数据集,包含182,014个GitHub上顶级的Git仓库,总存储量为3.0TB。该数据集通过优化后的数据检索管道生成,采用Siva格式高效存储分支仓库,减少数据下载和存储的需求。数据集主要用于大规模源代码分析和机器学习在源代码上的应用,旨在支持数据驱动的语言设计、最佳实践的推断以及为机器学习技术提供大量数据,以推动下一代开发工具的发展。
Public Git Archive is a large-scale code dataset created by source{d}, which encompasses 182,014 top-tier Git repositories hosted on GitHub, with a total storage capacity of 3.0 TB. This dataset is generated via an optimized data retrieval pipeline, and adopts the Siva format to efficiently store complete Git repositories including all their branches, reducing the overhead of data download and storage. The dataset is primarily intended for large-scale source code analysis and machine learning applications on source code, aiming to support data-driven programming language design, inference of development best practices, and provide substantial datasets for machine learning technologies to advance the development of next-generation development tools.
提供机构:
source{d} 马德里, 西班牙
创建时间:
2018-03-21
搜集汇总
数据集介绍

构建方式
开源软件的指数级增长催生了海量的公开代码资源,然而大规模、高质量的数据集却长期缺位。Public Git Archive的构建始于对GHTorrent元数据仓库的解析,从中筛选出GitHub上获得至少50个星标(stargazers)的182,014个仓库。随后,借助分布式克隆系统borges,采用优化的工作队列模型高效拉取仓库,并创造性地将同根仓库(即原始仓库及其所有分支)合并存储于一种名为Siva的新型归档格式中。该格式通过复用Git对象,避免了分支数据的重复下载与存储,最终生成约3.0 TB的数据集,并附带一份CSV格式的索引文件,详细记录了每个仓库的元数据、许可证及编程语言统计信息。
特点
该数据集最显著的特点在于其规模与丰富性:它包含182,014个Git仓库,涵盖455种不同的编程语言,代码行数高达159亿行,存储容量达3.0 TB,较之此前最大的数据集(如GitHub Java Corpus的14 GB)实现了数量级的跃升。不同于仅包含快照的数据集,Public Git Archive保留了完整的开发历史,包括所有提交、分支与拉取请求。其创新的Siva归档格式与根仓库存储策略,使得分支存储效率大幅提升,用户无需重复下载冗余数据。此外,索引文件提供了按语言、行数、许可证等多维度筛选的能力,为大规模、细粒度的代码分析奠定了坚实基础。
使用方法
使用者可通过官方GitHub仓库获取数据集下载链接及配套工具。数据由两部分组成:248,043个Siva文件(内含完整Git仓库)与一份CSV索引文件。推荐使用提供的命令行应用程序加速下载。用户可首先查询CSV索引,依据编程语言、项目规模等条件筛选所需仓库,仅下载对应的Siva文件。随后,利用Apache Spark扩展引擎(engine)将Siva文件作为Spark数据源进行分布式分析,支持SQL或PySpark查询。亦可使用Go语言API或命令行工具将Siva文件解包为常规Git仓库,以便进行更传统的版本控制操作。
背景与挑战
背景概述
随着开源软件生态的蓬勃发展,GitHub 等平台已积累数以千万计的公开 Git 仓库,为大规模代码分析提供了前所未有的数据基础。然而,现有数据集多局限于特定编程语言或规模较小,难以支撑跨语言、跨项目的“大代码”(Big Code)研究。在此背景下,Vadim Markovtsev 与 Waren Long 于 2018 年推出了 Public Git Archive(PGA)数据集,该数据集由 source{d} 机构主导构建,收录了 GitHub 上 182,014 个高星标仓库,涵盖 455 种编程语言,存储容量达 3.0 TB,较此前最大数据集提升了逾一个数量级。PGA 不仅提供源代码与元数据,还保留了完整的开发历史,为软件工程、机器学习及自然语言处理等领域的实证研究提供了前所未有的数据规模与多样性。
当前挑战
PGA 所面临的挑战主要源于其宏大目标与构建过程的复杂性。首先,在领域问题层面,现有数据集普遍存在语言单一、规模不足的局限,难以满足跨项目代码克隆检测、自动程序修复及语言模型训练等研究对数据多样性与规模的需求,而 PGA 虽大幅拓展了数据边界,却仍需应对数据偏差——仅基于星标数筛选仓库可能引入样本代表性不足的风险。其次,在构建过程中,海量仓库的克隆与存储面临严峻挑战:Git 仓库的 fork 结构导致重复数据冗余,传统克隆方式耗时且浪费存储空间;此外,数据集需定期更新,但全量快照占用巨大磁盘空间,增量更新又因 Git 包文件的压缩特性而难以实现二进制差异比对。这些技术障碍要求设计高效的去重存储格式与可扩展的分布式流水线。
常用场景
经典使用场景
在软件工程与代码分析的广袤领域中,Public Git Archive 数据集如同一座蕴藏无尽智慧的宝库,为研究者提供了前所未有的代码资源。其最经典的使用场景在于大规模源代码分析与机器学习模型训练。通过汇聚超过18万个人气Git仓库的完整历史与元数据,该数据集使得开发者能够基于海量真实代码进行模式挖掘、语言建模与程序理解。无论是构建代码补全系统、训练语法纠错模型,还是探索代码的自然语言特性,Public Git Archive 均以3.0 TB的庞大体量与跨语言多样性,成为支撑数据驱动型软件研究的基石。
衍生相关工作
Public Git Archive 的发布催生了一系列具有深远影响的衍生工作,如同涟漪般扩散至多个研究方向。在代码建模领域,研究者基于其数据训练出更强大的n-gram与神经网络模型,显著提升了代码补全与程序预测的准确性;在克隆检测方面,跨项目代码复用图的分析突破了单一项目边界,揭示了开源生态中惊人的代码冗余现象。此外,该数据集还启发了针对Git仓库的高效归档格式Siva与分布式克隆系统borges的设计,这些工具本身已成为后续大数据代码研究的基础设施,持续推动着软件工程与机器学习交叉领域的创新浪潮。
数据集最近研究
最新研究方向
在大规模开源代码分析与机器学习领域,Public Git Archive 的出现标志着“大代码”研究进入了一个全新阶段。该数据集囊括了18万余个GitHub上高星标的仓库,存储容量达3.0 TB,涵盖455种编程语言及其完整的开发历史,远超此前任何同类资源。当前,前沿研究方向聚焦于利用该数据集推动跨项目源代码克隆检测、自动命名推荐、程序预测与缺陷发现等任务,尤其是在自然语言处理与统计机器学习模型的训练中,其庞大的语料规模显著提升了n-gram模型等方法的性能表现。此外,随着开源生态的持续扩张,该数据集为研究代码复用的演化模式、语义聚类以及自动化软件移植提供了前所未有的实证基础,有力支撑了软件工程领域从经验分析向数据驱动范式的深刻转型。
相关研究论文
- 1Public Git Archive: a Big Code dataset for allsource{d} 马德里, 西班牙 · 2018年
以上内容由遇见数据集搜集并总结生成



