{
  "slug": "git-partial-clone",
  "term": "Git partial clone",
  "aliases": [
    "partial Git clone"
  ],
  "definition": "A Git partial clone omits selected repository objects while retaining a configured promise that missing objects can be fetched when needed.",
  "note": "Object scope: partial clone filters objects within a selected commit graph; shallow cloning limits the history graph itself. The two mechanisms are distinct and can be combined. A provider must remain available for objects not materialized locally. [git-partial-design]\n\nVerification: Git v2.43.0 fsck recognizes promised absence. In a seven-case experiment, full and strict checks passed with five missing blobs; a HEAD checkout fetched two but left historical reads unavailable offline. One online read fetched its object and changed the candidate inventory. These are designed cases, not failure frequencies. [git-partial-fsck] [git-partial]\n\nRecovery scope: rev-list --objects --all --missing=print can succeed while listing missing IDs. A shallow boundary can also hide required history without reporting missing objects. Retain the intended history scope and test a disposable copy with providers unavailable. [git-partial-rev-list] [git-partial-shallow]\n\nArchival boundary: self-contained objects do not establish reader compatibility. The native controls used one Git version, so cross-version restoration and external application dependencies remain untested. [git-partial] [git-partial-archive]",
  "status": "shipping",
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-23",
  "advantages": [
    "Can avoid transferring file contents that are not yet needed."
  ],
  "limitations": [
    "Missing promised objects remain a dependency, not an independent backup."
  ],
  "related": [
    "git-bundle",
    "git-alternate-object-database",
    "backup-verification",
    "restore-test"
  ],
  "citations": [
    {
      "id": "git-partial-design",
      "title": "Git v2.43.0: partial-clone dependency contract",
      "url": "https://github.com/git/git/blob/564d0252ca632e0264ed670534a51d18a689ef5d/Documentation/technical/partial-clone.txt",
      "accessed": "2026-10-23"
    },
    {
      "id": "git-partial-fsck",
      "title": "Git v2.43.0: promisor-aware object checks",
      "url": "https://github.com/git/git/blob/564d0252ca632e0264ed670534a51d18a689ef5d/builtin/fsck.c",
      "accessed": "2026-10-23"
    },
    {
      "id": "git-partial-rev-list",
      "title": "Git v2.43.0: missing-object enumeration",
      "url": "https://github.com/git/git/blob/564d0252ca632e0264ed670534a51d18a689ef5d/Documentation/rev-list-options.txt",
      "accessed": "2026-10-23"
    },
    {
      "id": "git-partial-shallow",
      "title": "Git v2.43.0: shallow history boundaries",
      "url": "https://github.com/git/git/blob/564d0252ca632e0264ed670534a51d18a689ef5d/Documentation/technical/shallow.txt",
      "accessed": "2026-10-23"
    },
    {
      "id": "git-partial",
      "title": "Hesela: Git partial-clone offline recovery controls",
      "url": "https://hesela.com/analyses/backup-verification-is-not-a-restore-test/#git-partial-closure",
      "accessed": "2026-10-23"
    },
    {
      "id": "git-partial-archive",
      "title": "Hutchinson et al.: Logical vs. Physical File System Backup, OSDI 1999, sections 1, 3-5",
      "url": "https://www.usenix.org/legacy/event/osdi99/full_papers/hutchinson/hutchinson.pdf",
      "accessed": "2026-10-23"
    }
  ],
  "provenance": [
    "Pinned Git v2.43.0 design and implementation, plus native Git 2.43.0 controls. No later-version equivalence or hardware reliability inference."
  ]
}
