Git

Kaip vyšnių rinkti Git

Kaip vyšnių rinkti Git
„git cherry pick“ yra „Git“ sujungimo funkcija. Tačiau yra nedidelis skirtumas tarp git cherry pick ir git susijungimo. Be to, naudojimo atvejis yra skirtingas. Pirmiausia pažiūrėkime, kaip veikia „git suliejimas“, tada palyginkime jį su „git“ vyšnių rinkimu. Tokiu būdu suprasite, kada naudoti „git merge“, o kada - „git cherry“ rinkinį.

Tarkime, jūs turite „Git“ saugyklą. Jūs dirbate meistras filialas ir jūs padarėte keletą įsipareigojimų (A, B ir C) ant meistras filialas taip pat.

Dabar staiga jums kyla puiki idėja. Taigi, jūs sukuriate kitą šaką newidea. Tada pradėjote įsipareigoti (E, F ir G) ten.

Jūs taip pat atlikote keletą pakeitimų meistras vėl filialas ir pridėjo naują įsipareigojimą H.

Dabar, jei jūsų naujoji idėja yra sėkminga, galbūt norėsite ją sujungti newidea atšaka į meistras atšaka. Tarkime, jūs jį sujungėte. Tai sukurs naują įsipareigojimą kaip matote paveikslėlyje žemiau. Naujame įsipareigojime bus viskas (visi įsipareigojimų pakeitimai E, F, ir G) filialo newidea.

Tarkime, jūs nenorite sujungti visų filialo įsipareigojimų newidea į meistras atšaka. Norite tik sujungti pakeitimus (tik pokyčių skirtumus) F į meistras atšaka. Čia atsiranda git vyšnių pasirinkimas. „Git“ vyšnių pasirinkimas leidžia tai padaryti. Jūs tiesiog radote įsipareigojimo maišos, kurią norite pasirinkti vyšnia, ir pritaikykite ją norimai šakai. Labai paprasta.

Šiame straipsnyje aš jums parodysiu, kaip pasirinkti vyšnias Git. Taigi, pradėkime.

„Git Cherry Pick“ darbo eiga:

Šiame skyriuje aš ketinu įsteigti „Git“ saugyklą taip, kad suprastumėte, kodėl naudojamas „git“ vyšnių rinkimas ir kaip vyšnių pasirinkimas „Git“.

Pirmiausia inicializuokite tuščią „Git“ saugyklą vyšnių rinkimo demonstracija / taip:

$ git init vyšnių rinkimo demonstracinė versija

Dabar eikite į saugyklą taip:

$ cd cherry-pick-demo /

Dabar sukurkite pagrindinis.c failas su tokiu turiniu:

Dabar pridėkite failą prie sustojimo srities taip:

$ git pridėti .

Dabar atlikite pakeitimus taip:

$ git įsipareigojimas -m 'pradinis įsipareigojimas'

Dabar sukurkite .gitignore failas su tokiu turiniu:

Pridėkite failą prie sustojimo srities.

$ git pridėti .

Atlikite pakeitimus:

Pridėta $ git įsipareigoti -m ' .„gitignore“ failas “

Kaip matote, dabar aš turiu 2 įsipareigojimus meistras atšaka.

$ git žurnalas - tiesioginis

Dabar noriu perkelti savo vietinę „Git“ saugyklą į nuotolinį „Git“ serverį, kad kiti žmonės galėtų dirbti šioje saugykloje. Čia taip pat galite naudoti „GitHub“. Tam naudosiu vietinį SSH serverį.

Taigi pridėkite nuotolinio „Git“ saugyklos URL taip:

$ git nuotolinis pridėkite kilmę git @ git.linuxhint.com: ~ / cherry-pick-demo.git

Dabar stumkite meistras išsišakokite į nuotolinę „Git“ saugyklą taip:

$ git push kilmės meistras

Tarkime, dabar Bobas nori prisidėti prie projekto. Taigi, jis klonavo „Git“ saugyklą savo kompiuteryje.

$ git klonas git @ git.linuxhint.com: ~ / cherry-pick-demo.git myproject

Dabar Bobas pereina į savo projektų katalogą.

$ cd myproject /

Jis taip pat turi du mano pridėtus įsipareigojimus.

$ git žurnalas - tiesioginis

Dabar bobas sukuria testas filialas išbandyti savo idėjas.

$ git patikra -b testas

Jis nusprendžia grąžinimo vertę pakeisti konstanta EXIT_SUCCESS nuo stdlib biblioteka.

Jis prideda pokyčius į pastatymo vietą.

$ git pridėti .

Įvykdo pakeitimus.

$ git įsipareigoti -m 'grąžinimo verte vietoj 0 naudojo EXIT_SUCCESS'

Dabar jis nusprendžia naudoti funkciją printMessage () kad išspausdintumėte pranešimą. Taigi, jis rašo funkciją.

Jis vėl vykdo pokyčius.

$ git pridėti .
$ git įsipareigoti -m 'pridėta funkcija printMessage ()'

Tada bobas naudoja programos funkciją.

Jis vėl vykdo pokyčius.

$ git pridėti .
$ git įsipareigoti -m 'naudojo funkciją printMessage () laiškui spausdinti'

Dabar bobas turi šiuos įsipareigojimus testas atšaka.

Dabar bobas bandymo šaką stumia į nuotolinę „Git“ saugyklą.

$ git push kilmės testas

Dabar Bobas jums paskambina ir pasakoja apie nuostabius jo atliktus pokyčius. Taigi, jūs gavote nuotolinės „Git“ saugyklos pakeitimus į savo vietinę saugyklą.

$ git atnešti

Dabar matote naują filialą kilmė / testas.

Jūs taip pat radote 3 naujus įsipareigojimus, kuriuos padarė bobas.

$ git log - tiesioginė kilmė / testas

Dabar norėtumėte sužinoti, kokius pakeitimus padarė bobas.

$ git log -p kilmė / testas

Nusprendėte nepakeisti grąžinimo vertės į EXIT_SUCCESS, kaip tai padarė Bobas.

Jums patinka idėja naudoti funkciją pranešimams spausdinti.

Jums taip pat patinka šis įsipareigojimas.

Taigi, jūs norite sujungti 2 iš 3 padarytų bobų įsipareigojimų. Jei naudojote „git merge“, kad sujungtumėte filialo testą, būtų taikomi visi 3 įsipareigojimai. Tačiau naudodami „git cherry pick“ funkciją galite sujungti tik jums patinkančius įsipareigojimus.

Atkreipkite dėmesį, kad pasirinkdami vyšnias „Git“, visada pradedate nuo seniausio įsipareigojimo ir po truputį einate į naujausią.

Anksčiau aš vyšnią rinkau pagrindinis.c failas atrodo taip.

Dabar pažiūrėkime, kaip vyšnios pasirinkti seniausią iš 2 įsipareigojimų - 9a4e532:

$ git vyšnių rinkimas 9a4e532

Susiliejimo konfliktas! Taip gali atsitikti.

Dabar atidarykite pagrindinis.c failą ir išspręsti susijungimo konfliktą.

Galutinė byla turėtų atrodyti taip.

Dabar pridėkite pakeitimus į sustojimo sritį.

$ git pridėti.

Dabar atlikite pakeitimus taip:

„$ git cherry-pick“ - tęskite

PASTABA: Taip pat galite naudoti git įsipareigoti čia pat. Viskas priklauso nuo tavęs. Man labiau patinka git cherry-pick -tęsti nes jis automatiškai naudos įsipareigojimo pranešimą iš įsipareigojimo, aš renkuosi vyšnias.

Dabar įveskite savo įsipareigojimo pranešimą čia ir išsaugokite failą.

Reikėtų pridėti naują įsipareigojimą.

Dabar vyšnia pasirinkite kitą įsipareigojimą taip:

$ git vyšnių rinkimas 08ba5e7

Jokio susijungimo konflikto. Puiku! Naujas įsipareigojimas turėtų būti pridėtas automatiškai.

Kaip matote, gaunu būtent tai, ko norėjau. Sujungiau tik man reikalingus įsipareigojimus.

Taigi, taip jūs renkatės vyšnias Git. Dėkojame, kad perskaitėte šį straipsnį.

Kaip parodyti FPS skaitiklį „Linux“ žaidimuose
„Linux“ žaidimai gavo didelį postūmį, kai „Valve“ paskelbė „Linux“ palaikymą „Steam“ klientui ir jų žaidimams 2012 m. Nuo tada daugelis AAA ir indie ž...
Kaip atsisiųsti ir paleisti „Sid Meier Civilization VI“ sistemoje „Linux“
Įvadas į žaidimą „Civilization 6“ yra šiuolaikinė klasikinės koncepcijos, pristatytos „Age of Empires“ žaidimų serijoje, koncepcija. Idėja buvo gana p...
Kaip įdiegti ir žaisti „Doom“ sistemoje „Linux“
Įvadas į Doom „Doom“ serija atsirado 90-aisiais, išleidus originalų „Doom“. Tai buvo tiesioginis hitas, o nuo to laiko žaidimų serija gavo daugybę apd...