A Git az egyik legnépszerűbb verziókezelő rendszer, megbízható és nagy teljesítményű, rugalmas, nem lineáris fejlesztési eszközöket kínál, amelyek elágazáson és egyesítésen alapulnak. Az előzmények integritásának és a változásokkal szembeni ellenálló képességnek a "visszamenőleges hatállyal" történő biztosítása érdekében minden elkötelezettségben az összes korábbi előzmény implicit hasítását alkalmazzák, lehetőség van az egyes címkék digitális aláírásaival történő tanúsításra és a fejlesztők elkötelezésére.
nemrég bejelentették új verzióját, a "Git 2.29.0" -t és az előző verzióhoz képest 627 módosítást fogadtak el az új változatban, 89 fejlesztő részvételével készült, amelyek közül 24-en vettek részt először a fejlesztésben.
Git 2.29.0 legfontosabb új funkciók
Ebben az új verzióban tartalmaz egy kísérleti lehetőséget az SHA-256 hash algoritmus használatára a veszélyeztetett SHA-1 helyett amikor tárgyakat ír a tárba. A kivonat a Git minden objektumának tartalmából jön létre, és egyedi azonosítója. Az objektum adatainak vagy fejlécének bármilyen változása megváltoztatja az azonosítóját. Az ütközések előfordulása a kivonatolási algoritmusban elméletileg nem zárja ki két különböző adatsor kialakulását, amelynek eredménye hash.
Sajnos, kiderült, hogy az SHA-1 algoritmus nem ellenálló a mesterséges ütközések kialakulásával szemben, hanem a Git-ben lévő objektumok SHA-1 ütközések manipulálásával történő helyettesítéséhez szükséges valós támadások végrehajtása, ami nem valószínű, mivel egy különálló objektum törléséhez szükséges, hogy a törölt objektum már tartalmazzon ütközési mintát, vagyis egy tetszőleges blokk pótolható.
Mivel minden ütközés hatalmas számítási erőforrásokat igényel, a már kiszámított sablonok ismertek amelyek ütközésekhez vezetnek, és korábban a Gitben ellenőrzést adtak az objektumokon történő felhasználásra tett kísérletekről.
A fejlesztés ezen szakaszában csak az SHA-1 és az SHA-256 között választhat, de egyelőre nem kombinálhatja a különböző hasheket egy adattárban. Ezenkívül jelenleg egyetlen Git-szolgáltató sem támogatja az SHA-256 kivonatokkal rendelkező tárakat, beleértve a GitHubot sem. A jövőben tervezik a hordozhatósági funkciók hozzáadását.
Az új verzió további változása a parancsban van "Git fetch" és "git push" azoknak, akik támogatja az exkluzív link specifikációkat (refspec), kibővíti a helyi és külső adattárak fiókjainak megfelelő összekapcsolási jogait. A referencia specifikációk kizárása hasznos lehet olyan helyzetekben, amikor nem csak ki kell választania, hanem ki is kell zárnia bizonyos ágakat a leképezésből. Például, amikor ellenőrizni kellett az összes "refs / heads / *" ágat, kivéve az egyiket "refs / heads / * / ref-to-kizárni", először egy teljes listát kellett megadni, minden egyes ágat kifejezetten tartalmazva.
Új mezők kerültek a "git for-each-ref" helyre amelyet a "-format" opcióval lehet megadni, az objektum nevén, típusán és azonosítóján kívül. Például a hozzáadott mezők tartalma: méret, tárgy: fertőtlenítés és módosító: rövid a rövid objektumazonosítók megjelenítéséhez. A hivatkozások szűréséhez több "–merged" és "-no-merged" argumentum is megadható.
Amikor konfliktus lép fel egy "git merge" művelet során, a kötelezettség üzenet fejléce most zárójelben van, hogy egyértelműbben elkülönüljön a Git diagnosztikai üzenetek végrehajtási adatai.
Új "merge.renormalize" beállítást adott hozzá, amikor be van állítva, a háromutas kombináció minden szakaszához a kijelentkezési és a bejelentkezési műveleteket hajtják végre.
A Git kommunikációs protokoll második verziója visszagördült, amelyet a 2.27-es verzióban letiltottak, és akkor használják, amikor az ügyfél távolról csatlakozik egy Git-kiszolgálóhoz. A stabilitási problémákat okozó hibát diagnosztizálták és kijavították.
A "git bisect" parancshoz hozzáadták a "–első szülő" opciótHogy annak a revíziónak az azonosítására szolgál, amelyben regresszív változás történt, az ismert munkamegtekintés és a probléma felmerülő felülvizsgálat között áthaladó elkötelezettségek kiválasztásának megváltoztatása. Ha megadja az „–első-szülő” beállítást, akkor az egyesített ágon csak az elkövetések számítanak, figyelmen kívül hagyva az egyesítési elkötelezettséget.
Javította a "git index-pack" belső parancs hatékonyságát "Git push" vagy "git fetch" végrehajtásakor használják, amikor párhuzamosan indexelik a többmagos rendszereket.
Hozzáadta a "merge.suppressDest" beállítást, amely szabályozza az "in $ dest" kifejezés hozzáadását a "Merge $ upstream into $ dest" üzenetekhez, amelyeket az ágak összevonásakor adnak ki (korábban a "in $ dest" kifejezés alapértelmezés szerint nem volt látható a fő ágnál).
Javítottak egy biztonsági rést a "contrib / mw-to-git" háttérprogramban (alapértelmezés szerint nincs beépítve) az adatok MediaWikiből történő lekérésére és lekérésére. A probléma lehetővé tette a kód végrehajtásának megszervezését egy támadó ellenőrzése alatt álló MediaWiki-példány elérésekor.
Végül, ha többet szeretne tudni róla, ellenőrizheti a részleteket A következő linken.