kutolewa kwa mfumo wa udhibiti wa chanzo uliosambazwa . Git ni mojawapo ya mifumo maarufu zaidi, inayotegemewa na yenye utendakazi wa hali ya juu ya udhibiti wa toleo, ikitoa zana rahisi za ukuzaji zisizo za mstari kulingana na matawi na kuunganisha. Ili kuhakikisha uadilifu wa historia na upinzani dhidi ya mabadiliko yanayorudiwa nyuma, hashing isiyofichika ya historia nzima ya awali inatumika katika kila ahadi; inawezekana pia kuthibitisha lebo za mtu binafsi na ahadi kwa saini za dijiti za wasanidi programu.
Ikilinganishwa na toleo la awali, toleo jipya lilijumuisha mabadiliko 544, yaliyotayarishwa na ushiriki wa watengenezaji 78, ambao 21 walishiriki katika maendeleo kwa mara ya kwanza. :
- Usaidizi wa jumla wa usanidi umeongezwa, hukuruhusu kubadili haraka kati ya seti tofauti za mipangilio bila kulazimika kuzama katika maelezo ya chaguo mahususi. Kutumia macros huondoa hitaji la kukumbuka ni mipangilio gani inayohitaji kubadilishwa ili kuamilisha kipengele fulani. Kwa mfano, ikiwa hazina kubwa inakabiliwa na kushuka kwa kasi, huenda ukahitaji kubadili hadi utaratibu mpya wa kuorodhesha, kuwezesha ukandamizaji wa kiambishi awali cha njia, na uwashe akiba ya faili ambayo haijafuatiliwa kwa kuweka index.version hadi 4 na kuwezesha core.untrackedCache. Macros huondoa hitaji la kutafuta hati kwa suluhisho na hukuruhusu kuamsha mipangilio mara moja na uboreshaji wa hazina zilizo na idadi kubwa ya faili:
git config feature.manyFiles kweli
- Vitu vilivyohifadhiwa kama grafu ya ahadi sasa vimewezeshwa kwa chaguo-msingi. Kipengele hiki kinatumia muundo wa grafu kwa ajili ya kuorodhesha, badala ya orodha ya mstari ya hashes za vitu vyenye viungo vya vitu vingine. Hapo awali, kutambua matoleo yenye urekebishaji maalum kulihitaji kupakia kila kitu kutoka kwenye diski ili kupata viungo. Sasa, kwa hifadhi ya grafu, viungo vyote muhimu vinaweza kutambuliwa mara moja. Mpito hadi hifadhi ya grafu ya ahadi katika hazina za kernel Linux Git imeongeza karibu mara mbili utendaji wa shughuli za tawi. Ili kuamilisha mbinu mpya ya kuhifadhi baada ya kusasisha hadi Git 2.24, endesha amri ya "git gc".
Miongoni mwa mabadiliko yanayohusiana na kufanya-graph, utekelezaji wa kiashirio cha maendeleo katika amri zinazohusiana na kufanya-grafu ("git commit-graph write", "git commit-graph verify", n.k.) imeletwa sambamba na amri zingine. Kiashiria cha maendeleo sasa kinaonyeshwa kwa chaguo-msingi kwa terminal pekee (ili kubadilisha tabia hii, tumia chaguo la "-[no-]progress"). Kwa kuongezea, kigezo kipya cha usanidi, fetch.writeCommitGraph, kimeongezwa, kuwezesha kusasisha kiotomatiki kwa faili ya jitihada wakati wa shughuli za "git fetch" (ahadi zote zilizochukuliwa kutoka hazina za nje zitaongezwa mara moja kwenye grafu bila hitaji la kuendesha otomatiki kando).
- Imeongeza amri ya kubatilisha historia ya mabadiliko - "", ambayo ni mbadala rahisi kwa amri"" kwa ajili ya kufanya shughuli kwenye historia ya mabadiliko ya hazina (kwa mfano, kufuta faili kutoka kwa hifadhi au kurejesha historia ya mabadiliko ya saraka maalum). Kwa ufanisi, badala ya uchambuzi ulioagizwa, wa kufanya-kwa-dhamira, "git filter-repo" hufanya shughuli kwenye uwakilishi wa mtiririko unaoendelea wa historia.
Uchujaji wa historia unafanywa kwa kutumia chaguo la "-path-{glob,regex}", ambalo huruhusu matumizi ya vinyago rahisi na usemi wa kawaida. Chaguo zinapatikana pia kwa kutafuta na kubadilisha operesheni au kusafisha vitu vya binary ambavyo vinazidi saizi maalum. Kila ahadi iliyoandikwa upya hupewa kitambulisho kipya cha SHA-1, na marejeleo yote ya ahadi iliyopitishwa husasishwa ipasavyo.
Chaguo la "-analyze" linapatikana kwa kuonyesha muhtasari wa takwimu za uhifadhi (idadi ya vitu kwa aina, faili kubwa na saraka, ambazo upanuzi unahitaji nafasi zaidi ya diski, nk). Kwa utendakazi uliopanuliwa, vidhibiti vya kupiga simu maalum vya Python vinaweza kujumuishwa, kukuwezesha kuunda amri ndogo mpya na kushughulikia matukio mbalimbali (kwa mfano, aina mpya za faili).
- Imeongeza chaguo la "--end-of-options" ili kutenganisha chaguo kutoka kwa majina ya rejeleo ambayo yanaweza kuanza na herufi "-" na kuchukuliwa kama chaguo ("git log --end-of-options --super-dangerous-option"). Ingawa majina kama haya yanaweza kuepukwa katika matumizi ya kila siku kama "git log 'refs/heads/--super-dangerous-option'", hii inaweza kusababisha maswala ya utatuzi wa nafasi ya majina kwenye hati. Kitenganishi cha kawaida cha "-" hakitumiki katika kesi hii, kwani tayari kinatumika kutenganisha majina ya rejeleo kutoka kwa faili (k.m., "git log --end-of-options --super-dangerous-option ^master --path/to/file");
- Imeongeza chaguzi za "--strategy" na "--strategy-option" kwenye "git rebase --rebase-merge" kwa ajili ya kuchagua ;
- Imeongeza kidhibiti kipya ".git/hooks/pre-merge-commit" kinachoitwa baada ya uunganisho kutekelezwa lakini kabla ya ahadi iliyotokana kuandikwa;
- Injini ya kukamilisha amri sasa inasaidia kukamilisha vigeu vya usanidi kuhusiana na mipangilio maalum ya amri.
Kwa mfano, ikiwa unahitaji kuandika "git -c core.autocrlf=false add path/to/my/file" lakini usikumbuke jina kamili la kigezo cha "core.autocrlf", unaweza kubonyeza Tab ili kupata kidokezo.
Kwa kuongeza, watengenezaji wa Git Kanuni ya maadili kwa washiriki wa mradi ambayo inafafanua kanuni za msingi za kutatua hali za migogoro. Hati hiyo inatokana na mapendekezo ya", hutumika katika miradi mingi ya chanzo huria, ikiwa ni pamoja na kernel Linux, Eclipse, Freedesktop, GitLab, Ruby, na Kubernetes. Hati hii inahakikisha fursa sawa kwa washiriki wote, bila kujali mtazamo wao wa ulimwengu, umri, jinsia, imani za kidini, kiwango cha elimu, hadhi ya kijamii, na utaifa. Jumuiya inahimiza mawasiliano ya kirafiki, uelewa, huruma kwa matatizo ya wengine, kukubali ukosoaji wa kujenga, na kupitishwa kwa suluhisho ambazo ni bora kwa jamii kwa ujumla. Kuteleza, mawasiliano ya kukera, majaribio ya kudhalilisha, unyanyasaji, ukiukaji wa faragha, kufichua taarifa binafsi, na vitendo vingine ambavyo vinaweza kuchukuliwa kuwa visivyofaa katika mawasiliano ya kitaaluma haviruhusiwi.
Chanzo: opennet.ru
