Skip to content

PROJECTS

Git GSoC projects

26 accepted projects across 11 cycles, 2016 to 2026. Each one links to its contributor, mentors and code.

Projects listed

26

Across 11 cycles

In GSoC 2026

4

3 in 2025

Busiest cycle

2026

4 projects

Mentors named

20

Across all listed projects

First cycle

2016

Latest 2026

Projects per cycle

Git, 2016 to 2026

  1. 4
View as table
Git projects per cycle
Projects
20161
20171
20183
20192
20203
20212
20222
20232
20243
20253
20264
  1. Improve the new git repo command

    K Jayatheerth

    The new git repo command doesn't handle file paths yet, and it forces users to dump all repository data at once instead of just requesting what they...

  2. Complete and extend the remote-object-info command for git cat-file

    Pablo Sabater

    Git's partial clone allows cloning repositories without downloading all objects (blobs, trees, ...). These objects are fetched on demand from the...

  3. Improve Disk Space Recovery for Partial Clones

    Siddharth Shrimali

    Problem: Git's "partial clone" is a lifesaver for huge repos because it lets you download only the files you actually need. But once you download a...

  4. Refactoring in order to reduce Git’s global state

    Tian Yuchen

    Git’s core C codebase still relies heavily on global state, such as the_repository and various environment-derived variables defined in...

  1. Refactoring in order to reduce Git’s global state

    Ayush ChandekarMentored by Christian Couder, Ghanshyam Thakkar

    Git currently relies on a global object the_repository and several global environment-related variables, which limits modularity and complicates...

  2. Machine-Readable Repository Information Query Tool

    Lucas OshiroMentored by Patrick Steinhardt, KarthikNayak

    This project introduces a new Git sub-command (currently intended to be called git repo-info) that will centralize data currently retrieved by git...

  3. Consolidate ref-related functionality into git-refs

    Meet SoniMentored by Patrick Steinhardt, shejialuo

    This project aims to streamline reference management in Git by consolidating functionality currently spread across multiple commands into a single...

  1. Move existing tests to a unit testing framework

    Ghanshyam ThakkarMentored by Kaartic Sivaraam, Christian Couder

    Git has many existing end-to-end tests which are written in shell script. However, to unit test some of the internal libraries/functionality, we use...

  2. Move and improve reftable tests in the unit testing framework

    ChandMentored by Christian Couder, Patrick Steinhardt

    A new unit testing framework was introduced to the Git mailing list last year with the aim of simplifying testing and improving maintainability by...

  3. Implement consistency check for refs

    shejialuoMentored by Patrick Steinhardt, KarthikNayak

    The project addresses the issue that the current git-fsck command cannot detect corruption in the "packed-refs" file and lacks explicit checks for...

  1. More Sparse Index Integrations

    SHUQI LIANGMentored by Victoria Dye

    The "sparse-index" is a feature that reduces the size of the working directory's index to function effectively with "sparse-checkout", resulting in...

  2. Unify ref-filter formats with other --pretty formats

    Kousik SanagavarapuMentored by Christian Couder, Hariom Verma

    Git has an old problem of duplicated implementations of some logic. For example, Git had at least 4 different implementations to format command...

  1. More Sparse Index Integrations

    Shaoxuan YuanMentored by Derrick Stolee, Victoria Dye

    The spare index feature accelerates Git commands when using sparse-checkout in cone mode. This works by modifying the on-disk index file in a way...

  2. Reachability bitmap improvements

    Abhra303Mentored by Kaartic Sivaraam, Taylor Blau

    Git uses bitmaps to speed up the work of knowing which object(trees, blobs, etc.) can be reached from which commit. The current bitmap implementation...

  1. Use ref-filter formats in git cat-file

    ZheNing HuMentored by Christian Couder, Hariom Verma

    git cat-file has options --batch[= ] and --batch-check[= ] that can take a . It would be nice if the implementation of this would use the as much...

  2. Finish converting submodule to builtin

    Atharva RaykarMentored by shourya_, Christian Couder

    Git has historically had many components implemented in the form of shell scripts. This was less than ideal for several reasons: Portability:...

  1. Convert submodule to builtin

    shouryaMentored by Christian Couder, Kaartic Sivaraam

    Some Git commands were initially implemented directly in shell script with some instances of Perl as well. As times progressed, various platforms to...

  2. Implement Generation Number v2

    abhishekkumar8222Mentored by Jakub Narębski, D. Stolee

    Git uses various clever methods for making operations on very large repositories faster, from bitmap indices for git fetch to generation numbers...

  3. Unify ref-filter formats with other --pretty formats

    Hariom VermaMentored by Christian Couder, Heba Waly

    Git has an old problem of duplicated implementations of some logic. For example, Git had at least 4 different implementations to format command...

  1. Improve consistency of sequencer commands

    __rohitMentored by Thomas Gummerer, Elijah Newren

    Since when it was created in 2005, the git rebase command has been implemented using shell scripts that are calling other git commands. Commands like...

  2. Make pack access code thread-safe

    Matheus TavaresMentored by telezhnaya, Christian Couder

    As direct as possible, the goal with this project is to make more of Git’s codebase thread-safe, so that we can improve parallelism in various...

  1. Convert “git stash” to builtin

    Paul-Sebastian UngureanuMentored by Johannes Schindelin

    Currently, many components of Git are still in the form of Shell or Perl scripts. This choice makes sense especially when considering how faster new...

  2. Convert rebase and it's options to C

    Pratik KarkiMentored by Stefan Beller, Christian Couder

    Many components of Git are still in the form of shell and Perl scripts. This has certain advantages of being extensible but causes problems in...

  3. Convert interactive rebase to C

    Alban GruinMentored by Stefan Beller, Christian Couder

    git is a modular source control management software, and all of its subcommands are programs on their own. A lot of them are written in C, but a...

  1. Incremental Rewrite of git-submodules

    Prathamesh ChavanMentored by Stefan Beller, Christian Couder

    To manage the external dependencies, git submodule commands have been frequently used by the developers in their projects. But as most of the...

  1. Incremental Rewrite of Git Bisect

    Pranit BauvaMentored by larsxschneider, Christian Couder

    Git bisect is a frequently used command which helps the developers in finding the commit which introduced the regression. Some part of it is written...

Data: Google Summer of Code public archive. Official GSoC archive