Git 2.35 lähdeohjausjulkaisu

Kahden kuukauden kehitystyön jälkeen hajautetun lähteen ohjausjärjestelmä Git 2.35 on julkaistu. Git on yksi suosituimmista, luotettavimmista ja tehokkaimmista versionhallintajärjestelmistä, joka tarjoaa joustavia epälineaarisia kehitystyökaluja, jotka perustuvat haarautumiseen ja yhdistämiseen. Historian eheyden ja taannehtivien muutosten kestävyyden varmistamiseksi jokaisessa sitoumuksessa käytetään koko aikaisemman historian implisiittistä hajautusta, ja yksittäiset tagit ja sitoumukset on myös mahdollista varmentaa kehittäjien digitaalisilla allekirjoituksilla.

Edelliseen julkaisuun verrattuna uusi versio sisälsi 494 muutosta, jotka valmisteltiin 93 kehittäjän osallistuessa, joista 35 osallistui kehitykseen ensimmäistä kertaa. Tärkeimmät innovaatiot:

  • SSH-avainten käyttömahdollisuuksia Git-objektien digitaaliseen allekirjoittamiseen on laajennettu. Useiden avainten voimassaoloajan rajoittamiseksi on lisätty tuki OpenSSH-direktiiveille ”voimassa ennen” ja ”voimassa-jälkeen”, joilla varmistetaan oikea allekirjoitusten toiminta sen jälkeen, kun joku kehittäjistä on kiertänyt avainta. Ennen tätä oli ongelma vanhan ja uuden avaimen allekirjoitusten erottamisessa - jos poistat vanhan avaimen, sillä tehtyjä allekirjoituksia ei voida tarkistaa, ja jos jätät sen, se on edelleen mahdollista Luo uudet allekirjoitukset vanhalla avaimella, joka on jo korvattu toisella avaimella. Käyttämällä valid-ennen ja valid-after-komentoja voit erottaa avainten laajuuden allekirjoituksen luomisajankohdan perusteella.
  • Merge.conflictStyle-asetuksessa, jonka avulla voit valita tilan, jolla näytetään tietoja ristiriidoista yhdistämisen aikana, on ilmestynyt tuki "zdiff3"-tilalle, joka siirtää kaikki ristiriidan alussa tai lopussa määritetyt standardirivit ristiriidan ulkopuolelle. alue, joka mahdollistaa tiiviimmän tiedon esittämisen.
  • "--stage" -tila on lisätty "git stash" -komentoon, jonka avulla voit piilottaa vain hakemistoon lisätyt muutokset esimerkiksi tilanteessa, jossa joudut väliaikaisesti lykkäämään joitain monimutkaisia ​​muutoksia, jotta lisää se, mikä on jo valmis, ja käsittele loput hetken kuluttua. Tila on samanlainen kuin "git commit" -komento, joka kirjoittaa vain indeksiin tehdyt muutokset, mutta sen sijaan, että luotaisiin uusi toimitus "git stash —staged", tulos tallennetaan väliaikaiselle stash-alueelle. Kun muutokset ovat tarpeen, ne voidaan palauttaa "git stash pop" -komennolla.
  • "git log" -komentoon on lisätty uusi muotomäärittäjä "-format=%(describe)", jonka avulla voit yhdistää "git log" -komennon tulosteen "git description" -komennon kanssa. "git description":n parametrit määritetään suoraan määritteen sisällä ("-format=%(describe:match= ,sulje pois= )"), johon voit sisällyttää myös lyhennettyjä tunnisteita ("—format=%(describe:tags= )") ja määritä heksadesimaalimerkkien määrä objektien tunnistamiseksi (“—format=%(describe:abbrev= )"). Jos haluat esimerkiksi luetella viimeiset 8 toimitusta, joiden tageissa ei ole julkaisuehdokastunnistetta, ja määrittää 8-merkkiset tunnisteet, voit käyttää komentoa: $ git log -8 —format='%(describe:exclude=*-rc *,abbrev=13 )' v2.34.1-646-gaf4e5f569bc89 v2.34.1-644-g0330edb239c24 v2.33.1-641-g15f002812f858 v2.34.1-643ab. gb2bd95 bbc94f056 v2.34.1-642-gffb56f95d v8-7- gdf2.34.1c203adeb9 v2980902-2.34.1-g640b3a41
  • user.signingKey-asetus tukee nyt uudentyyppisiä avaimia, jotka eivät rajoitu "ssh-"-tyyppiin ja määrittävät koko tiedostopolun avaimeen. Vaihtoehtoiset tyypit määritetään "key::"-etuliitteellä, esimerkiksi "key::ecdsa-sha2-nistp256" ECDSA-avaimille.
  • Muutosluettelon luomisen nopeus "—histogrammi"-tilassa sekä käytettäessä "-color-moved-ws" -vaihtoehtoa, joka ohjaa välilyöntien korostusta värierossa, on lisääntynyt huomattavasti.
  • "Git jump" -komento, jota käytetään antamaan Vimille tietoja tarkasta hypystä haluttuun kohtaan tiedostossa jäsennettäessä yhdistämisristiriitoja, tarkasteltaessa eroja tai suoritettaessa hakutoimintoa, tarjoaa mahdollisuuden kaventaa peitettyjä yhdistämisristiriitoja. Esimerkiksi, jos haluat rajoittaa toiminnot vain "foo"-hakemistoon, voit määrittää "git jump merge - foo" ja sulkea pois "Documentation"-hakemiston käsittelystä - "git jump merge - ':^Documentation'"
  • On tehty työtä "size_t"-tyypin käytön standardoimiseksi "unsigned long" -tyypin sijaan objektien kokoa edustavissa arvoissa, mikä mahdollisti "puhtaiden" ja "smudge" -suodattimien käytön yli 4 Gt:n tiedostoissa. kaikilla alustoilla, mukaan lukien alustat, joissa on LLP64-tietomalli , tyyppi "unsigned long", jossa on rajoitettu 4 tavua.
  • "-empty=(stop|drop|keep)" on lisätty "git am" -komentoon, jonka avulla voit valita toiminnan tyhjille viesteille, jotka eivät sisällä korjaustiedostoja jäsennettäessä korjaustiedostoja postilaatikosta. Arvo "stop" lopettaa koko korjaustoiminnon, "drop" ohittaa tyhjän korjaustiedoston ja "keep" luo tyhjän toimituksen.
  • Lisätty tuki osittaisille indekseille (harva indeksi) komentoihin "git reset", "git diff", "git blame", "git fetch", "git pull" ja "git ls-files" suorituskyvyn parantamiseksi ja tilan säästämiseksi arkistot , joissa suoritetaan osittaisia ​​kloonaustoimintoja (sparse checkout).
  • "git sparse-checkout init" -komento on vanhentunut ja se pitäisi korvata komennolla "git sparse-checkout set".
  • Lisätty uuden "reftable"-taustajärjestelmän ensimmäinen toteutus viitteiden, kuten haarojen ja tunnisteiden, tallentamiseksi arkistoon. Uusi taustaohjelma käyttää JGit-projektin käyttämää lohkotallennustilaa ja on optimoitu erittäin suuren viitemäärän tallentamiseen. Taustaa ei ole vielä integroitu refs-järjestelmään, eikä se ole valmis käytännön käyttöön.
  • "Git grep" -komennon väripaletti on säädetty vastaamaan GNU grep -apuohjelmaa.

Lähde: opennet.ru

Lisää kommentti