NAME | SYNOPSIS | DESCRIPTION | OPTIONS | SEE ALSO | GIT | COLOPHON |
|
|
GIT-BACKFILL(1) Git Manual GIT-BACKFILL(1)
git-backfill - Download missing objects in a partial clone
git backfill [--min-batch-size=<n>] [--[no-]sparse]
Blobless partial clones are created using git clone --filter=blob:none and then configure the local repository such that the Git client avoids downloading blob objects unless they are required for a local operation. This initially means that the clone and later fetches download reachable commits and trees but no blobs. Later operations that change the HEAD pointer, such as git checkout or git merge, may need to download missing blobs in order to complete their operation. In the worst cases, commands that compute blob diffs, such as git blame, become very slow as they download the missing blobs in single-blob requests to satisfy the missing object as the Git command needs it. This leads to multiple download requests and no ability for the Git server to provide delta compression across those objects. The git backfill command provides a way for the user to request that Git downloads the missing blobs (with optional filters) such that the missing blobs representing historical versions of files can be downloaded in batches. The backfill command attempts to optimize the request by grouping blobs that appear at the same path, hopefully leading to good delta compression in the packfile sent by the server. In this way, git backfill provides a mechanism to break a large clone into smaller chunks. Starting with a blobless partial clone with git clone --filter=blob:none and then running git backfill in the local repository provides a way to download all reachable objects in several smaller network calls than downloading the entire repository at clone time. By default, git backfill downloads all blobs reachable from the HEAD commit. This set can be restricted or expanded using various options. THIS COMMAND IS EXPERIMENTAL. ITS BEHAVIOR MAY CHANGE IN THE FUTURE.
--min-batch-size=<n> Specify a minimum size for a batch of missing objects to request from the server. This size may be exceeded by the last set of blobs seen at a given path. The default minimum batch size is 50,000. --[no-]sparse Only download objects if they appear at a path that matches the current sparse-checkout. If the sparse-checkout feature is enabled, then --sparse is assumed and can be disabled with --no-sparse.
git-clone(1).
Part of the git(1) suite
This page is part of the git (Git distributed version control
system) project. Information about the project can be found at
⟨http://git-scm.com/⟩. If you have a bug report for this manual
page, see ⟨http://git-scm.com/community⟩. This page was obtained
from the project's upstream Git repository
⟨https://github.com/git/git.git⟩ on 2025-08-11. (At that time,
the date of the most recent commit that was found in the
repository was 2025-08-07.) If you discover any rendering
problems in this HTML version of the page, or you believe there is
a better or more up-to-date source for the page, or you have
corrections or improvements to the information in this COLOPHON
(which is not part of the original manual page), send a mail to
man-pages@man7.org
Git 2.51.0.rc1 2025-08-07 GIT-BACKFILL(1)
Pages that refer to this page: git(1)