Git suliejimo strategijos parinktys


Prieš ką nors paliesdami

Norimą rezultatą galiu gauti naudodamas šias komandas: git pull origin demo git checkout master git pull origin master git merge demo git suliejimo strategijos parinktys push origin master Vienintelis mano rūpestis yra jei yra kokių nors sujungimo problemų, Noriu pasakyti git perrašyti pakeitimus master filialas neduodamas man sujungti greitą.

Taigi iš esmės keičiasi demo filialas turėtų automatiškai perrašyti master atšaka.

Turėjau tą pačią problemą. Išbandyti šį: git pull origin master --allow-unrelated-histories git push origin master Bandyti git pull --rebase development Tai išsprendė mano problemą. Mano naujojoje atpirkimo operacijoje buvo keletas pavyzdinių inicializavimo failų, o mano vietiniai atpirkimo mėnesiai buvo verti įsipareigojimų.

Apsižvalgiau, kad yra keli variantai, bet nenoriu rizikuoti jungdamasis. Kaip pažymėjo root, -X parinktys yra perduodamos sujungimo strategijai ir abi numatytosios recursive strategija ir alternatyva resolve strategijos imtis -X ours arba -X theirs vienas ar kitas, bet ne abu. Kad suprastumėte, ką jie daro, turite žinoti, kaip Gitas randa ir elgiasi, sujungti konfliktus.

Kai kuriuose failuose gali įvykti sujungimo konfliktas1 kai bazė versija skiriasi nuo abiejų srovė dar vadinamas vietiniu, HEAD arba --ours versija ir kitas dar vadinamas nuotoliniu arba --theirs to paties failo versiją. Tai yra, susijungimas nustatė tris pakeitimus tris įsipareigojimus : bazę, mūsų ir jų.

ALM pagrindai su „Microsoft Power Platform“

Šie pokyčiai paprastai nustatomi eilutėje, grynai tekstinis pagrindu. Git neturi realaus failo turinio supratimo; tai tik kiekvienos teksto eilutės palyginimas. Šiuos pokyčius matote jūs git diff produkcijos, ir kaip visada jie turi kontekste taip pat.

Gali būti, kad dalykai, kuriuos mes pakeitėme, skiriasi nuo tų, kuriuos jie pakeitė, todėl atrodo, kad pokyčiai nesusidurs, tačiau pasikeitė ir kontekstas pvz.

Jei pokyčiai įvyks skirtingi linijos - pavyzdžiui, mes keičiamės color į colour 17 eilutėje ir jie keičiasi fred į barney 71 eilutėje - tada nėra jokio konflikto: Gitas paprasčiausiai imasi tiek pokyčiai. Jei pokyčiai vyksta tomis pačiomis linijomis, bet yra identiški pasikeičia, Gitas imasi vienas egzempliorius pokyčio.

Sukiyabashi Jiro Roppongi kalvos

Kadangi sakei, kad jungiesi demo jų į master mūsų ir nori pokyčių demo, jūs norėtumėte -X theirs. Aklai taikantis -X, tačiau yra pavojinga. Tai, kad mūsų pokyčiai neprieštaravo eilutėmis, dar nereiškia, kad mūsų pokyčiai iš tikrųjų neprieštarauja!

git suliejimo strategijos parinktys sistemos prekybos programinė įranga

Vienas klasikinis pavyzdys pasitaiko kalbose su kintamomis deklaracijomis. Pagrindinė versija gali paskelbti nenaudojamą kintamąjį: int i; Savo versijoje mes git suliejimo strategijos parinktys nenaudojamą kintamąjį, kad kompiliatoriaus įspėjimas dingtų jų versiją, jie prideda kilpą keliomis eilutėmis vėliau, naudodami i kaip kilpos skaitiklis. Jei sujungsime abu pakeitimus, gautas kodas nebebus kompiliuojamas.

git suliejimo strategijos parinktys bitkoinas pradės prekiauti

Jei turite automatizuotą testų rinkinį, svarbiausia yra atlikti bandymus sujungus. Tai galite padaryti atlikę įsipareigojimą ir prireikus vėliau išspręsti reikalus; arba tu gali tai padaryti prieš tai įsipareigojant, pridedant --no-commit į git merge komandą.

Paaiškinimas:

Išsamią informaciją apie visa tai paliksime kitiems skelbimams. Atliekant mažiau sujungimų ir arba protingesnių sujungimų ir arba naudojant pakartotinę bazę Abiejose mūsų komandų sekose yra trys sujungimai.

Man neaišku, kas atnaujina demo ir arba master. Jei pats rašote savo kodą demo filialas, ir kiti rašo kodą ir stumia jį į demo šakotis origin, tada šis pirmojo žingsnio sujungimas gali sukelti konfliktų arba sukelti tikrą sujungimą. Jei taip, git suliejimo strategijos parinktys naudoti git rebase vietoj to. Kita vertus, jei niekada nedarote savo įsipareigojimų demo, tu net ne reikia a demo atšaka.

git suliejimo strategijos parinktys dupont darbuotojų akcijų pasirinkimo sandoriai

Ta pati logika galioja ir master, nors jūs darote sujungimą ant master, todėl jums tikrai reikia master. Tarkime, kad niekada nedarote savo įsipareigojimų demo.

Breadcrumb

Atkreipkite dėmesį, kad visi trys metodai gali nepavykti: sulieti gali nepavykti su konfliktu, sujungti su --ff-only gali nepavykti greitai persikelti į priekį, o pakartotinė bazė gali nepavykti kilus konfliktui perkūrimas iš esmės vyšnių rinkimas opcionų prekyba svertiniais etf, kuri naudoja susijungimo mechanizmus ir todėl gali sukelti susijungimo konfliktą.

Tai yra vienas geriausių paaiškinimų nieko ant SO. Visų pirma, suskirstymas ir pavyzdinis klausimas su -X ours prieš -X theirs buvo be galo naudinga. Sprendimas, kurį radau, buvo naudoti git merge -s ours branch. Atkreipkite dėmesį, kad parinktis yra -s git suliejimo strategijos parinktys ne -X. Žingsniai, kur oldbranch yra šaka, kurią norite perrašyti newbranch.

git suliejimo strategijos parinktys instaforex dvejetainiai variantai

Tai išsprendė konfliktą išsprendė nesuderinamus failustačiau failas nėra sujungtas. Ir negali nei sujungti.

git suliejimo strategijos parinktys cfd broker metatrader

Šis sujungimo būdas pridės vieną įsipareigojimą master kuris įklijuojamas bet kurioje vietoje feature, nesiskundžiant konfliktais ar kitais šūdais. Tai veikė, kai įsipareigojimai nebuvo švariai sujungiami. Tačiau cituoti šaltinį ne visada Changes from the other tree that do not conflict with our side are reflected in the merge result.

Sprendimai

Man tai neveikė, nes turėjau savo filiale, kuris buvo perrašytas, švariai sujungtus įsipareigojimus. Ar yra koks kitas būdas? Pakeitimai iš kito medžio, kurie neprieštarauja mūsų pusei, atsispindi sujungimo rezultate. Dvejetainio failo atveju visas turinys paimamas iš mūsų pusės. Yra -X theirs taip pat, bet nėra aišku, kad būtent to iš tikrųjų nori OP.

Jūs perskaitėte ne visą kelią.

Štai kas man pasiteisino:

Jūsų užrašas apibūdina ką ours daro, kai naudojate vidinėje pusėje su -s variantą. Naudojant ours su -X: Jis atmeta viską, ką darė kitas medis, skelbdamas, kad mūsų istorijoje yra visa, kas jame įvyko.

git suliejimo strategijos parinktys finansinio turto dvejetainiai pasirinkimo sandoriai

Aš tikriausiai nesupratau to teisingai. Viena lengvai suprantama alternatyva yra tiesiog ištrinti šaką ir vėl ją sekti. Mano atveju norėjau pritraukti pokyčius iš tolimos šakos, kurie buvo stumiami jėga.