Programavimas

5 išplėstinės „Git“ komandos, skirtos jūsų „Git“ žaidimui atnaujinti

Jei šiandien esate kūrėjas, yra tikimybė, kad išmokote „Git“ - versijų valdymo sistemą, kuri yra šiuolaikinės programinės įrangos darbo eigos esmė. Jūs žinote pagrindus - kaip veikia saugyklos, kaip sukurti filialus ir atlikti pakeitimus, kaip sujungti tuos pakeitimus ir pritraukti užklausas.

Bet dabar, kai žinote pagrindus, atėjo laikas šiek tiek pakilti aukštyn - pasinaudoti kai kuriomis galingesnėmis „Git“ funkcijomis savo darbo eigoje. Pateikiame penkias pažangias „Git“ funkcijas, kad galėtumėte pasinaudoti dabartinių ir būsimų kūrėjų pastangomis.

Supaprastinkite įsipareigojimų istorijas naudodami git rebase

Kai turite du filialus projekte (pvz., Plėtros filialą ir pagrindinį filialą), kurie abu turi pakeitimus, kuriuos reikia sujungti, susilieti komanda yra natūralus ir tiesus būdas jas suvienyti. A sujungti prideda vienos šakos vystymosi istoriją kaip susijungimo įsipareigojimą kitai. Nors tai visiškai išsaugo abi istorijas, tai gali apsunkinti bendrą projekto istoriją. Kai kuriais atvejais galbūt norėsite paprastesnio ir švaresnio rezultato.

git rebase komanda taip pat sujungia dvi šakas, tačiau tai daro šiek tiek kitaip. A git rebase perrašo vienos šakos įsipareigojimo istoriją taip, kad kita šaka būtų įtraukta į ją nuo to momento, kai ji buvo sukurta. Tai sukuria mažiau triukšmingą ir linijiškesnę tos šakos istoriją. Bet tai taip pat reiškia, kad pašalinama potencialiai naudinga informacija apie kitą šaką ir sujungimo procesą.

Link tokios baigties, perkrauti geriausia naudoti, kai turite kelis privatus filialai, kuriuos norite sujungti į vieną švarią įsipareigojimų istoriją, prieš sujungdami ją su viešąja filialu. Tokiu būdu jūs gaunate visą naudąperkrauti - padaryti įsipareigojimų istoriją linijiškesnę ir mažiau triukšmingą - neužgožiant svarbių detalių apie įsipareigojimų jūsų projektui istoriją.

Išvalyti susilieja su git sulieti - skvošas

Kitas būdas sujungti ir paskesnius įsipareigojimus padaryti mažiau triukšmingas yra naudojant - skvošas parinktis susilieti. - skvošas paima visus įsipareigojimus iš gaunamo filialo ir suploja juos į vieną, konsoliduotą įsipareigojimą.

Sutraukto sujungimo grožis yra tas, kad galite pasirinkti, kaip pritaikyti gautus etapinius failus. Galite tiesiog atlikti visą pakeitimų rinkinį kaip vieną, arba galite atlikti kelis failus tuo metu, kai pakeitimai yra glaudžiai susiję. Sumuštas suliejimas taip pat naudingas, jei gaunamo šakos įsipareigojimų istorija yra naudinga tik to filialo kontekste arba jei tai yra iš privataus filialo, kuris vis tiek bus atmestas.

Kaip ir a perkrauti, ši technika geriausiai tinka įsipareigojant vidinis filialai valdyti, tačiau prireikus jis taip pat tinka traukimo užklausoms.

Spartinkite klaidų paiešką naudodami git dvipusis

Subtilias regresijas kode yra sunkiausia paerzinti. Įsivaizduokite, kad ką tik pridėjote bandymą prie savo kodų bazės, kad išvengtumėte klaidos, tačiau nesate tikri, kada ši klaida pirmą kartą pasirodė ... ir savo saugykloje turite šimtus ar net tūkstančius įsipareigojimų.git dvipusis komanda leidžia žymiai sumažinti ieškomo kodo kiekį, kad rastumėte įsipareigojimą, sukūrusį klaidą.

Kai įgalinsite padalinti į dvi dalis (git bisect start) savo kodo bazėje nurodote du taškus, kad susietumėte paiešką: vieną, kuriame žinote, kad viskas yra blogai (GALVA, paprastai), ir tas, kuriame žinai, kad viskas buvo gerai. padalinti į dvi dalis patikrins įsipareigojimą pusiaukelėje tarp blogo įsipareigojimo ir gero ir leis jums atlikti bandymus. Šis dvejetainis padalijimo procesas kartojasi, kol paaiškėja įsipareigojimas, kuris sugadino dalykus.

git dvipusis yra didelių kodų bazių, turinčių ilgas, sudėtingas įsipareigojimų istorijas, gailestis, taupantis bėdą, kai teks peržengti kiekvieną paskutinį įsipareigojimą tikintis, kad anksčiau ar vėliau rasite savo klaidą. Prie labai mažiausiai tai sumažina perpus reikalingesnę paiešką ir bandymą.

Pakartotinai įsipareigokite git vyšnių rinkimas

Daugelis pažengę git komandos yra naudingos tik siauromis konkrečiomis aplinkybėmis, ir jas saugiai ignoruoja net vidutiniškai pažengę vartotojai. Bet kai jūs susiduriate su viena iš tų konkrečių aplinkybių, verta jas žinoti.

Apsvarstykite git vyšnių rinkimas. Tai leidžia jums paimti tam tikrą įsipareigojimą - bet kokį įsipareigojimą iš bet kurio filialo - ir pritaikyti jį kitai šakai, netaikant jokių kitų pakeitimų iš to įsipareigojimo istorijos. Tai naudinga keliomis pagrindinėmis aplinkybėmis:

  • Jūs įsipareigojote netinkamai šakai ir norite tai greitai pritaikyti tinkamajai.
  • Prieš tęsdami kitus darbus, susijusius su magistralės kodu, norite pritaikyti patvarkymą iš šakos į bagažinę.

Atkreipkite dėmesį, kad jūs turite keletą galimybių, be tiesioginio įsipareigojimo taikymo, kai jūs vyšnių rinkimas tai. Jei praeisite - neįpareigoti Pavyzdžiui, vyšnios pasirinktas įsipareigojimas dedamas į dabartinės šakos sustojimo sritį.

Elegantiškai organizuokite projektus naudodamiesi „Git“ submoduliais

Kaip dauguma programavimo kalbų suteikia galimybę importuoti paketus ar modulius, „Git“ siūlo būdą automatiškai įtraukti vienos saugyklos turinį į kitą, submodulis. Repo viduje galite sukurti pakatalogį ir automatiškai užpildyti jį kito atpirkimo turiniu, paprastai nuoseklumo sumetimais nurodydami konkretų atlikimo maišos variantą.

Atkreipkite dėmesį, kad „Git“ submoduliai geriausiai veikia šiomis sąlygomis:

  • Aptariami submoduliai dažnai nesikeičia arba yra užrakinti konkrečiam įsipareigojimui. Bet koks darbas ant submodulis, o ne su submodulis, turėtų būti valdomas atskirai.
  • Visi naudoja „Git“ versiją, kuri palaiko submodulius ir supranta veiksmus, kurių reikia norint su jais dirbti. Pvz., Submodulių katalogai ne visada automatiškai pateikiami su submodulių saugyklos turiniu. Jums gali tekti naudoti „git“ submodulio atnaujinimas atpirkimo komandą, kad viskas būtų atnaujinta.
$config[zx-auto] not found$config[zx-overlay] not found