Optimizarea Automată a Depozitului în Fundal cu git maintenance în Git

Ghid complet pentru git maintenance introdus în Git 2.29+: accelerarea depozitelor masive prin prefetch în fundal, commit-graph și optimizarea automată a pachetelor de obiecte.

Sintaxă comandă
git maintenance start | git maintenance run --task=commit-graph

Pe depozite de cod uriașe (monorepo-uri cu sute de mii de commit-uri sau milioane de fișiere), comenzi de bază precum git status, git log sau git fetch pot deveni perceptibil de lente. Începând cu Git 2.29, a fost introdusă comanda git maintenance, care configurează sarcini automate de fundal (prin cron sau systemd timers) pentru a menține depozitul optimizat la viteză maximă.

Activarea mentenanței automate în fundal
# În interiorul depozitului dorit, rulați o singură dată:
git maintenance start

# Ce face această comandă:
# 1. Înregistrează depozitul curent în lista globală de mentenanță (~/.gitconfig).
# 2. Configurează sarcini automate de sistem (cron sau systemd timer) care rulează
#    în fundal fără a întrerupe activitatea dezvoltatorului!

Sarcinile de Optimizare Rulate Automat

Sarcină (Task) Frecvență Implicită Ce Optimizează
prefetch La fiecare 1 oră Descarcă în avans modificările noi de pe serverul remote în referințe speciale (refs/prefetch/) fără a atinge branch-urile locale, făcând viitorul git fetch instantaneu!
commit-graph La fiecare 1 oră Generează fișierul binar .git/objects/info/commit-graph, accelerând comenzile git log --graph de 5 până la 10 ori.
loose-objects Zilnic Comprimă fișierele individuale de obiecte libere în fișiere pachet (packfiles).
incremental-repack Zilnic Reorganizează packfile-urile pentru a preveni fragmentarea stocării pe disc.
Rularea manuală a mentenanței
# Dacă vrei să forțezi optimizarea imediată a grafului de commit-uri:
git maintenance run --task=commit-graph

# Oprirea mentenanței pentru depozitul curent:
git maintenance stop