git-backfill(1) — Linux manual page

NAME | SYNOPSIS | DESCRIPTION | OPTIONS | SEE ALSO | GIT | COLOPHON

GIT-BACKFILL(1)                 Git Manual                GIT-BACKFILL(1)

NAME         top

       git-backfill - Download missing objects in a partial clone

SYNOPSIS         top

       git backfill [--min-batch-size=<n>] [--[no-]sparse]

DESCRIPTION         top

       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.

OPTIONS         top

       --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.

SEE ALSO         top

       git-clone(1).

GIT         top

       Part of the git(1) suite

COLOPHON         top

       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)