git-2025-features

πŸ“Œ NOTE: For detailed Git 2.49+ features (git-backfill, path-walk API, zlib-ng), see git-2-49-features.md skill.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "git-2025-features" with this command: npx skills add josiahsiegel/claude-plugin-marketplace/josiahsiegel-claude-plugin-marketplace-git-2025-features

πŸ“Œ NOTE: For detailed Git 2.49+ features (git-backfill, path-walk API, zlib-ng), see git-2-49-features.md skill.

🚨 CRITICAL GUIDELINES

Windows File Path Requirements

MANDATORY: Always Use Backslashes on Windows for File Paths

When using Edit or Write tools on Windows, you MUST use backslashes (
) in file paths, NOT forward slashes (/ ).

Examples:

  • ❌ WRONG: D:/repos/project/file.tsx

  • βœ… CORRECT: D:\repos\project\file.tsx

This applies to:

  • Edit tool file_path parameter

  • Write tool file_path parameter

  • All file operations on Windows systems

Documentation Guidelines

NEVER create new documentation files unless explicitly requested by the user.

  • Priority: Update existing README.md files rather than creating new documentation

  • Repository cleanliness: Keep repository root clean - only README.md unless user requests otherwise

  • Style: Documentation should be concise, direct, and professional - avoid AI-generated tone

  • User preference: Only create additional .md files when user specifically asks for documentation

Git 2025 Features - Advanced Capabilities

Git 2.49 (March 2025) - Latest

Major additions: git-backfill, path-walk API, zlib-ng performance, improved delta compression.

See git-2-49-features.md for complete coverage.

Git 2.48-2.49 Features

Reftables Migration (Completed in 2.48)

What: New reference storage format replacing loose ref files and packed-refs.

Benefits:

  • Faster ref operations (50-80% improvement)

  • Atomic ref updates

  • Better scalability for repositories with many refs

  • Reflogs fully migratable (completed in 2.48)

Migration:

Check current ref storage format

git config core.refStorage

Migrate to reftables

git refs migrate --ref-storage=reftables

Verify migration

git fsck --full git log --oneline -5

Roll back if needed (before critical operations)

git refs migrate --ref-storage=files

When to use:

  • Repositories with 10,000+ refs

  • High-frequency branch operations

  • CI/CD systems creating many temporary refs

  • Monorepos with extensive branching

Performance Milestones (2.48-2.49)

Git 2.48:

  • Memory leak free status achieved

  • Stable memory usage in long-running operations

Git 2.49:

  • zlib-ng integration: 20-30% faster compression

  • Path-walk API: 50-70% better delta compression

  • New name-hashing algorithm for optimal packfiles

Benefits automatically in:

  • Large repository clones

  • Extended rebase sessions

  • Bulk operations (filter-repo, GC, repack)

Sparse-Checkout (Enhanced in 2.48)

What: Check out only a subset of files from repository.

Use cases:

  • Monorepos (work on one service)

  • Large repositories (reduce disk usage)

  • Build systems (fetch only needed files)

Cone Mode (Default - Recommended):

Clone with sparse-checkout

git clone --filter=blob:none --sparse <repo-url> cd <repo>

Initialize sparse-checkout in cone mode

git sparse-checkout init --cone

Add directories to checkout

git sparse-checkout set src/api src/shared docs

Add more directories

git sparse-checkout add tests/integration

View current patterns

git sparse-checkout list

Check what would be matched

git sparse-checkout check-rules src/api/users.ts

Disable sparse-checkout

git sparse-checkout disable

Advanced Patterns (Non-Cone Mode):

Enable pattern mode

git sparse-checkout init --no-cone

Add patterns (one per line)

git sparse-checkout set
".md"
"src/api/
"
"!src/api/legacy/*"

Read patterns from file

git sparse-checkout set --stdin < patterns.txt

Reapply Rules:

After merge/rebase that materialized unwanted files

git sparse-checkout reapply

Partial Clone

What: Clone repository without downloading all objects initially.

Filters:

  • blob:none - Defer all blobs (fastest, smallest)

  • tree:0 - Defer all trees and blobs

  • blob:limit=1m - Defer blobs larger than 1MB

Usage:

Clone without blobs (fetch on demand)

git clone --filter=blob:none <repo-url>

Clone without large files

git clone --filter=blob:limit=10m <repo-url>

Combine with sparse-checkout

git clone --filter=blob:none --sparse <repo-url> cd <repo> git sparse-checkout set src/api

Convert existing repository to partial clone

git config extensions.partialClone origin git config remote.origin.promisor true git fetch --filter=blob:none

Prefetch all missing objects

git fetch --unshallow

Combine Partial Clone + Sparse-Checkout:

Ultimate efficiency: Only objects for specific directories

git clone --filter=blob:none --sparse <repo-url> cd <repo> git sparse-checkout set --cone src/api git checkout main

Result: Only have objects for src/api

Check promisor objects:

Verify partial clone status

git config extensions.partialClone

See promisor packfiles

ls -lah .git/objects/pack/*.promisor

Force fetch specific object

git rev-list --objects --missing=print HEAD | grep "^?"

Git Worktrees

What: Multiple working directories from one repository.

Benefits:

  • Work on multiple branches simultaneously

  • No need to stash/commit before switching

  • Parallel work (review PR while coding)

  • Shared .git (one fetch updates all)

Basic Operations:

List worktrees

git worktree list

Create worktree for existing branch

git worktree add ../project-feature feature-branch

Create worktree with new branch

git worktree add -b new-feature ../project-new-feature

Create worktree from remote branch

git worktree add ../project-fix origin/fix-bug

Remove worktree

git worktree remove ../project-feature

Clean up stale worktree references

git worktree prune

Advanced Patterns:

Worktree for PR review while coding

git worktree add ../myproject-pr-123 origin/pull/123/head cd ../myproject-pr-123

Review PR in separate directory

cd -

Continue coding in main worktree

Worktree for hotfix

git worktree add --detach ../myproject-hotfix v1.2.3 cd ../myproject-hotfix

Make hotfix

git switch -c hotfix/security-patch git commit -am "fix: patch vulnerability" git push -u origin hotfix/security-patch

Worktree organization

mkdir -p ~/worktrees/myproject git worktree add ~/worktrees/myproject/feature-a -b feature-a git worktree add ~/worktrees/myproject/feature-b -b feature-b git worktree add ~/worktrees/myproject/pr-review origin/pull/42/head

Best Practices:

  • Organize directory structure:

~/projects/ myproject/ # Main worktree myproject-feature/ # Feature worktree myproject-review/ # Review worktree

  • Clean up regularly:

Remove merged worktrees

git worktree list | grep feature | while read wt branch commit; do if git branch --merged | grep -q "$branch"; then git worktree remove "$wt" fi done

  • Shared configuration:

  • .git/config applies to all worktrees

  • .git/info/exclude applies to all worktrees

  • Each worktree has own index and HEAD

Scalar (Large Repository Tool)

What: Tool for optimizing very large repositories (Microsoft-developed).

Install scalar (comes with Git 2.47+)

scalar register <path>

Clone with scalar optimizations

scalar clone --branch main <repo-url>

Enables automatically:

- Sparse-checkout (cone mode)

- Partial clone (blob:none)

- Multi-pack-index

- Commit-graph

- Background maintenance

Unregister

scalar unregister <path>

Delete repository

scalar delete <path>

Git Backfill (Experimental)

What: Background process to fetch missing objects in partial clone.

Fetch missing blobs in background

git backfill

Configure batch size

git backfill --min-batch-size=1000

Respect sparse-checkout patterns

git backfill --sparse

Performance Comparison

Traditional Clone:

git clone large-repo

Size: 5GB, Time: 10 minutes

Sparse-Checkout:

git clone --sparse large-repo git sparse-checkout set src/api

Size: 500MB, Time: 3 minutes

Partial Clone:

git clone --filter=blob:none large-repo

Size: 100MB, Time: 1 minute

Partial Clone + Sparse-Checkout:

git clone --filter=blob:none --sparse large-repo git sparse-checkout set src/api

Size: 50MB, Time: 30 seconds

When to Use Each Feature

Sparse-Checkout:

  • βœ“ Monorepos

  • βœ“ Working on specific services/modules

  • βœ“ Limited disk space

  • βœ— Need entire codebase often

Partial Clone:

  • βœ“ CI/CD pipelines

  • βœ“ Large repositories

  • βœ“ Good network connectivity

  • βœ— Offline work frequently

Worktrees:

  • βœ“ Parallel development

  • βœ“ PR reviews during work

  • βœ“ Multiple branch testing

  • βœ— Low disk space

Combine All:

  • βœ“ Massive monorepos (Google scale)

  • βœ“ Multiple simultaneous tasks

  • βœ“ Minimal local storage

  • βœ“ Fast network connection

Troubleshooting

Sparse-checkout not working:

Verify configuration

git config core.sparseCheckout git config core.sparseCheckoutCone

Re-apply patterns

git sparse-checkout reapply

Check patterns

git sparse-checkout list

Missing objects in partial clone:

Fetch specific object

git fetch origin <commit>

Fetch all missing

git fetch --unshallow

Verify promisor config

git config extensions.partialClone

Worktree issues:

Locked worktree

git worktree unlock <path>

Corrupted worktree

git worktree remove --force <path> git worktree prune

Branch already checked out

git checkout --ignore-other-worktrees <branch>

Migration Guide

From traditional to optimized workflow:

1. Current large clone

cd large-project du -sh .git # 5GB

2. Create optimized new clone

cd .. git clone --filter=blob:none --sparse large-project-new cd large-project-new git sparse-checkout set src/api src/shared

3. Verify size

du -sh .git # 50MB

4. Switch workflow

cd ../large-project-new

5. Delete old clone when comfortable

rm -rf ../large-project

Resources

  • Git Partial Clone Documentation

  • Git Sparse-Checkout Guide

  • Git Worktree Best Practices

  • Scalar Documentation

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

tailwindcss-advanced-layouts

No summary provided by upstream source.

Repository SourceNeeds Review
General

tailwindcss-animations

No summary provided by upstream source.

Repository SourceNeeds Review
General

tailwindcss-mobile-first

No summary provided by upstream source.

Repository SourceNeeds Review
General

docker-best-practices

No summary provided by upstream source.

Repository SourceNeeds Review