A Git 2.54 újdonságai számos hasznos fejlesztést hoznak, amelyek megkönnyítik a napi fejlesztési feladatokat. Az új parancsok és konfigurációs lehetőségek a repository-kezelést egyszerűbbé és hatékonyabbá teszik. Ebben a cikkben a legfontosabb változások kerülnek sorra, amelyek a fejlesztői munkafolyamatot gyorsíthatják fel.
Git 2.54 újdonságai: egyszerűbb history-átírás a git history paranccsal
A git history parancs egy új experimentális funkció, amely leegyszerűsíti az olyan gyakori feladatokat, amelyekhez korábban az interaktív rebase kellett. Ez a parancs két alapvető műveletet támogat: a reword és a split, amelyek a leggyakoribb history-szerkesztési igényeket fedik le.
A git history reword parancs egy commit üzenetének módosítását teszi lehetővé anélkül, hogy a working tree vagy az index érintett lenne. Szerkesztőt nyit az adott commit üzenetével, és a felhasználó szabadon átírhatja azt. Ez különösen hasznos, ha egy régebbi commit szövegét kell javítani a teljes interaktív rebase nélkül. A parancs még bare repository-ban is fut, ami további rugalmasságot ad.
A git history split parancs egy commitot bont fel két commitra hunk-szintű szelekcióval. A felülete hasonló a jól ismert git add -p-hez, amely a fájl meghatározott részeinek kiválasztását engedi. Futás után új parent commit jön létre a kiválasztott hunkokkal, a maradék hunkok pedig az eredeti commitben maradnak. A descendant branch-ek automatikusan az új history-ra mutatnak, így nincs szükség manuális kezelésre.
Ez az új parancs egyszerűbb esetekre kínál alternatívát a git rebase -i helyett. Három committal korábbi üzenet javítása vagy egy commit szétvágása így gyorsabb. A konfliktus-heavy, bonyolultabb rebase feladatok továbbra is az interaktív rebase hatáskörébe tartoznak.
Konfigurációalapú hookok: új módszer a repo-szintű automatizáláshoz
A Git hookok eddig csak a .git/hooks/ könyvtárban elhelyezett scriptekben vagy a globális core.hooksPath opción át voltak definiálhatók. A 2.54 új szintaxist vezet be, amely a hookokat közvetlenül a Git config fájlba helyezi. Az új formátum egy [hook „linter”] szekciót használ, benne az event = pre-commit és command = ~/bin/… mezőkkel.
Az újítás lehetővé teszi, hogy a globális és a repo-specifikus hookok egyszerre fussanak. A fejlesztőcsapatok a megosztott hookokhoz többé nem szorulnak harmadik féltől származó hook-managerre vagy symlink-megoldásokra. Az olyan eszközök, mint a pre-commit vagy a husky, sok esetben kiválthatók ezzel a natívan a Git-be épített konfigurációs módszerrel.
A konfigurációalapú hookok nem törik meg a meglévő .git/hooks/ scripteket. A Git teljes visszamenőleges kompatibilitást biztosít, így a régi script-alapú hookok tovább működnek. A csapatok fokozatosan átmigrálhatják a hookjaikat az új formátumra anélkül, hogy egyszerre kellene mindent módosítaniuk. Egy közös lint-beállítás például a céges globális config-ba kerülhet, míg a projekt-specifikus szabályok a repo configjában maradnak. A Biome 2.4 lint-szabályokhoz hasonlóan az automatizált kódminőség-biztosítás így még rugalmasabbá válik.
Geometric repack alapértelmezetten a git maintenance-ben
A git maintenance run parancs alapértelmezett stratégiája megváltozott a 2.54-ben. Korábban a garbage collection volt az alapértelmezett, mostantól a geometric stratégia veszi át a szerepet. A geometric repack csak azokat a packfile-okat egyesíti, amelyek geometric progresszióba rendezhetők objektumszám alapján.
Ez az átváltás nagyobb repositoryknál érzékelhető teljesítményelőnyt hoz. A korábbi megközelítés minden maintenance futásnál az összes objektumot újra felpackolta, ami számításigényes volt. Az új geometric módszer inkrementálisan tömörít, így a rendszeres karbantartás nem eszkalálódik drága all-into-one repack-ké. Az olyan workflow-k, amelyek a GitHub Copilot automatikus PR review megoldásra épülnek, hasonlóan profitálnak a gyorsabb maintenance-ből.
A geometric stratégia a 2.52 óta opt-in volt a maintenance.strategy beállítással. A 2.54-ben ez lett az alapértelmezett manuális futáskor. Nagy monorepokkal dolgozó csapatok érezhetően gyorsabb maintenance-ciklust tapasztalhatnak. A autonóm fejlesztési megoldások is profitálnak az optimalizált stratégiából.
A Git 2.54 ezekkel az újításokkal a fejlesztői munkamenet hatékonyságát javítja. Az egyszerűbb history-szerkesztés, a konfigurációs hookok és a gyorsabb maintenance-rutin kevesebb infrastruktúra-karbantartást és több időt hagy a kódolásra. A kiadás 137 közreműködő munkájának eredménye, közülük 66 új contributor. További részletek a GitHub blog Git 2.54 cikkében és a hivatalos Git dokumentációban érhetők el.

