Kaip ištrinti įsipareigojimą Git

Kaip ištrinti įsipareigojimą Git

Įsipareigojimo ištrynimas „Git“ yra kažkas, ką galite padaryti dažniau, nei tikitės. Atliekant tokią įprastą užduotį, tikriausiai būtų patogu turėti trumpą vadovą.

Kaip ištrinti įsipareigojimą Git

Šiame straipsnyje atsakoma, kaip ištrinti „Git“ įsipareigojimą ir kitus galimus sprendimus, kuriuos galite išbandyti. Taigi, jei padarėte klaidą paskutiniame įsipareigojime arba norite išvalyti atpirkimo istoriją, skaitykite toliau, kad sužinotumėte.

Įsipareigojimo ištrynimas naudojant Git

Įsipareigojimus „Git“ galite ištrinti keliais būdais. Jei nenorite arba negalite pakeisti pranešimo Git commit , dažniausiai naudojamas sprendimas yra naudoti komandas „git reset“ ir „git revert“.

Norėdami naudoti „git reset“, atlikite šiuos veiksmus:

  1. Raskite įsipareigojimą, kurį norite ištrinti, naudodami git log .
    Kaip ištrinti įsipareigojimą Git
  2. Naudokite git reset –soft [commit hash], kad anuliuotumėte commit komandą nieko „neišmesdami“.
    Kaip ištrinti įsipareigojimą Git
  3. Arba naudokite git reset –hard [commit hash], kad iš naujo nustatytumėte įsipareigojimą prieš tą, kurį norite ištrinti.
    Kaip ištrinti įsipareigojimą Git
  4. Pakeiskite „[commit hash]“ įsipareigojimo, pagal kurį taikote, maiša.

Arba taip pat galite naudoti „git rebase -i HEAD~[Number]“, kad pakeistumėte paskutinį įsipareigojimų skaičių. Pakeiskite [numeris] įsipareigojimų skaičiumi. Git parodys failą, kurį galėsite redaguoti ir pašalinti įsipareigojimą, kurio norite nebelikti. Darykite tai tik tuo atveju, jei dar nesate įsipareigoję.

Tai paprastas metodas, tačiau būkite atsargūs. Jis visam laikui pašalina visus įsipareigojimų pakeitimus po to, kai jį nustatėte iš naujo, todėl įsitikinkite, kad tai yra būtent tai, ko norite.

Arba galite naudoti „git revert“ taip:

  1. Jei norite išlaikyti pakeitimus savo darbo kataloge, naudokite git revert [commit hash] . Ši komanda sukuria naują įvykdymą, kuris anuliuoja jūsų nurodyto įsipareigojimo pakeitimus.
    Kaip ištrinti įsipareigojimą Git
  2. Grįžę perkelkite pakeitimus į nuotolinę saugyklą naudodami git push .
    Kaip ištrinti įsipareigojimą Git

Čia yra kita alternatyva, jei norite ištrinti kelis konkrečius įsipareigojimus:

  1. Naudokite git checkout [last commit hash], kad patikrintumėte paskutinį įsipareigojimą, kuris turėtų likti.
    Kaip ištrinti įsipareigojimą Git
  2. Sukurkite naują filialą naudodami git checkout -b remontą .
    Kaip ištrinti įsipareigojimą Git
  3. Vykdykite git cherry-pick [specific commit hash] pirmame įsipareigojime, kurį norite išsaugoti.
    Kaip ištrinti įsipareigojimą Git
  4. Pakartokite su kitais įsipareigojimais, kuriuos norite išsaugoti.
  5. Paleiskite „git Checkout Master“ į „Checkout Master“.
    Kaip ištrinti įsipareigojimą Git
  6. Iš naujo nustatykite pagrindinį valdiklį į paskutinį naudotiną įvykdymą naudodami git reset –hard [last commit hash] .
    Kaip ištrinti įsipareigojimą Git
  7. Sujunkite naują šaką į pagrindinį su git merge remontu .
    Kaip ištrinti įsipareigojimą Git
  8. Tada paleiskite git push -f origin master, kad nustumtumėte į nuotolinio valdymo pultą.
    Kaip ištrinti įsipareigojimą Git

Kada turėtumėte ištrinti įsipareigojimus

Yra keletas situacijų, kai geriausia yra panaikinti įsipareigojimą. Štai keletas iš jų.

Blogas kodas

Viena iš dažniausiai pasitaikančių priežasčių, kodėl norėtumėte atsikratyti įsipareigojimo, yra ta, kad jame esantis kodas jo tiesiog nepertraukia. Galbūt padarėte klaidą ir norite pradėti iš naujo, o gal supratote, kad rezultatas neatitinka to, ko siekiate. Pavyzdžiui, galbūt pridėjote funkciją, kuri prieštarauja kitai kodo daliai. Ištrynus šį įsipareigojimą, galėsite grįžti atgal, išspręsti problemą ir iš naujo patvirtinti pataisytą versiją.

Jei ką tik įtraukėte kodo gabalą ir pastebėjote akivaizdžią klaidą, pvz., klaidą arba kodo dalį, kurios neturėjo būti, bet neturite laiko tai ištaisyti – tai gera priežastis. įsipareigojimui panaikinti. Užuot leidę šiai nereikalingai ar ydingai kodo daliai patekti į jūsų projekto istoriją (ir tai gali sukelti painiavą ar net katastrofiškas klaidas taisant klaidas), galite ištrinti šį įsipareigojimą. Taip jūsų projektas bus švarus.

Jautrūs duomenys

Atsitiktinai neskelbtini duomenys pateikiami dažniau, nei jūs manote. Nenuostabu, kad tai gali sukelti didelę asmeninę ar įmonės saugumo riziką. Viskas, pradedant slaptažodžiais ir API raktais, baigiant asmenine informacija, gali atsitiktinai patekti į jūsų įsipareigojimą. Ir kai jis yra projekto erdvėje, bet kas gali prieiti prie jo ir pažeisti jūsų ar jūsų komandos saugumą.

Šie nelaimingi atsitikimai yra galbūt net geresnė priežastis ištrinti įsipareigojimą nei paprastas blogas kodas. Galite redaguoti sugedusį kodą ir nesijaudinti, kad jis liks projekto istorijoje, tačiau tai nėra rizika, kurią norėtumėte prisiimti su neskelbtinais duomenimis. Pavyzdžiui, jei netyčia įtraukėte failą, kuriame yra API raktai, pašalinus šį įpareigojimą šis raktas nepateks į netinkamas rankas.

Istorijos švara

Kita rimta priežastis ištrinti „Git“ įsipareigojimą yra išlaikyti savo projekto istoriją švarią ir paprastą. Kai dirbate su projektu, jūsų įsipareigojimų istorija tampa vis labiau griozdiška dėl nedidelių atnaujinimų, eksperimentų ar pakeitimų, kurie nebėra aktualūs. Kai dėl kokios nors priežasties norite peržiūrėti istoriją, pavyzdžiui, išsiaiškinti, kodėl atlikote tam tikrą pakeitimą arba po eksperimento grįžti į stabilią būseną, netvarkinga istorija gali tapti problema.

Ištrindami nereikalingus įsipareigojimus išlaikysite tvarkingą projekto istoriją, kurią galėsite lengvai sekti jums ir kitiems jūsų komandos nariams. Tai dar naudingiau prieš sujungiant filialą, kad galėtumėte pateikti aiškią, glaustą ir atitinkamą istoriją tiems, kurie peržiūri jūsų kodą. Pavyzdžiui, jei turite kelis įsipareigojimus, kurie buvo tik nedideli funkcijos patobulinimai, galbūt norėsite juos sujungti į vieną, kad istorija būtų tvarkinga.

Geriausia praktika ir patarimai

Prieš panaikindami įsipareigojimą, vadovaukitės kai kuriais geriausios praktikos pavyzdžiais, kad projektas veiktų ir išvengtų nenumatytų pasekmių.

Atsarginė savo darbo kopija

Prieš ištrinant bet kokį įsipareigojimą iš Git, verta pasidaryti atsarginę savo darbo kopiją, net jei manote, kad jį laikyti neverta. Tai gali atrodyti kaip papildomas darbas, tačiau atsarginė kopija yra apsaugos tinklas, jei viskas vyks ne taip, kaip planuota.

Galite sukurti atsarginę kopiją sukurdami naują šaką, kuri atspindi dabartinę jūsų saugyklos būseną. Pavyzdžiui, prieš ištrindami įsipareigojimą, kuriame įdiegta nauja funkcija, sukurkite atsarginės kopijos šaką „feature-backup“. Tai suteiks jums laisvę eksperimentuoti ir ištrinti įsipareigojimus, nebijant prarasti svarbaus darbo. Taigi, jei vėliau suprasite, kad jums kažko reikia iš ištrinto įsipareigojimo, nepraradote to visam laikui. Jei nuspręsite, kad jums nebereikia šios atsarginės kopijos, galite ištrinti „Git“ šaką .

Neištrinkite viešų įsipareigojimų

Dirbdami su viešosiomis saugyklomis, ypač atvirojo kodo projektuose ar komandinėje aplinkoje, turėtumėte būti ypač atsargūs trindami įsipareigojimus. Kai įsipareigojimas perkeliamas į viešą saugyklą, o kiti jį ištraukia, šio įsipareigojimo ištrynimas gali supainioti arba atitraukti visus dalyvaujančius ir sutrikdyti darbą. Tai tam tikras kilimėlio ištraukimas iš po kažkieno – ne maloni patirtis, o veikiau neapgalvota. Jei turite ištrinti jau viešą įsipareigojimą, iš anksto pasakykite savo komandai ar projekto bendradarbiams, kad jie žinotų, kas vyksta. Taip kiekvienas yra sąmoningas ir gali atitinkamai koreguoti savo darbą.

Naudokite Revert viešiesiems atpirkimams

Jei vis tiek norite anuliuoti pakeitimus viešoje saugykloje, užuot visam laikui ištrynę įsipareigojimą, galite atšaukti sujungimą naudojant Git . Skirtingai nuo git reset, kuris efektyviai perrašo istoriją, „git revert“ sukuria naują įsipareigojimą, kuris anuliuoja ankstesnio įsipareigojimo pakeitimus.

Todėl šios komandos naudojimas yra daug saugesnis ir skaidresnis, ypač dirbant su kitais. Jūs atvirai pranešate savo komandos nariams, kad galbūt padarėte klaidą ir grąžinate įsipareigojimą, kuris ją ištaiso. Jei pastūmėjote įsipareigojimą su reikšminga klaida, „git Revert“ leidžia greitai paneigti tos klaidos padarinius ir nepažeisti projekto istorijos. Taip išlaikomas projekto istorijos vientisumas ir visų vietinė saugykla suderinama su nuotolinio valdymo pultu.

Prieš ištrindami dar kartą patikrinkite

Viena didžiausių pavojų ištrinant įsipareigojimus „Git“ yra prarasti laiką ir pastangas, kurias įdėjote šiam įsipareigojimui. Norėdami to išvengti, peržiūrėkite visus pakeitimus kiekviename įsipareigojime, kurį norite pašalinti. Norėdami patikrinti įsipareigojimus, naudokite „git log arba git show [commit hash]“. Jei pašalinate įsipareigojimą, dėl kurio prie jūsų kodo buvo pridėtos kelios funkcijos, įsitikinkite, kad jūsų projektui nereikia šių funkcijų, kad jos veiktų arba kad jos atkartotos kitur.

Įsipareigojimas Jai

Yra daug priežasčių panaikinti įsipareigojimą „Git“, pvz., išlaikyti tvarkingą istoriją, panaikinti painias klaidas arba apsaugoti neskelbtiną informaciją nuo smalsių akių. Kad ir kokia būtų priežastis, atminkite, kad tai galima padaryti dviem būdais – „git reset“ ir „git revert“, kurių kiekvienas turi skirtingą paskirtį, todėl pasirinkite tą, kuris tinka jūsų projektui. Taip pat galite pervardyti „Git“ filialą, kad būtų daugiau aiškumo.

Ar kada nors teko ištrinti įsipareigojimą „Git“? Kokia buvo jūsų patirtis ir ar turite patarimų, kuriais galėtumėte pasidalinti? Palikite komentarą žemiau ir tęskite pokalbį.


Kaip ištaisyti „CapCut Reverse“ neveikia

Kaip ištaisyti „CapCut Reverse“ neveikia

Yra daug priežasčių, kodėl jums gali patikti filmuoti ir montuoti. Galite filmuoti vietas, kuriose lankėtės, žmones, kuriuos mylite, ir įamžinti bet kokias ypatingas akimirkas

„ISperm“ leidžia patikrinti spermą naudojant „iPad“.

„ISperm“ leidžia patikrinti spermą naudojant „iPad“.

Jūs turėjote sunkią dieną darbe. Pastatėte iPad ant kavos staliuko. Žiūrite „Netflix“, užtraukiate uždangą, analizuojate spermatozoidų skaičių, patikrinate „Twitter“.

„Parrots Disco“ dronas perkelia popierinius lėktuvus į kitą lygį

„Parrots Disco“ dronas perkelia popierinius lėktuvus į kitą lygį

Pagalvokite apie droną ir pagalvosite apie zujantį keturkopterį, sklandantį virš parko. Tai arba karas. Bet keturi varikliai yra tokie 2015-ieji, atrodo, kaip dronas

Galite padėti sutelkti dėmesį į pirmosios pasaulyje kosminės katės statulą

Galite padėti sutelkti dėmesį į pirmosios pasaulyje kosminės katės statulą

Savaitės „Kickstarter“: Maskvoje pastatyta Félicetės, pirmosios katės Laikos, pirmojo šuns kosmose, statula. Kumpis, astrošimpanė

Kaip patikrinti, kam priklauso failas sistemoje „Linux“.

Kaip patikrinti, kam priklauso failas sistemoje „Linux“.

Jei norite patikrinti, kam priklauso failas, „Linux“ veikia labai skirtingai nei kitos sistemos. Nėra galimybės tiesiog dešiniuoju pelės mygtuku spustelėti failą ir eiti į Ypatybės

Kaip diagnozuoti ir pataisyti neįkraunamą „Xbox“ valdiklį

Kaip diagnozuoti ir pataisyti neįkraunamą „Xbox“ valdiklį

Žaidėjai mėgsta Xbox konsoles dėl jų atgalinio suderinamumo, o tai reiškia, kad žaidėjai gali naudoti senesnius priedus naujesnėse konsolėse. Su Xbox išleidimu

Kaip naudoti savo maršruto parinktuvą su „Verizon Fios“.

Kaip naudoti savo maršruto parinktuvą su „Verizon Fios“.

Jei naudojate „Verizon“ kaip interneto tiekėją ir turite savo maršruto parinktuvą, mintis atsisakyti nuomoto „Verizon“ maršruto parinktuvo turėjo būti kilusi į galvą. Naudojant

Negaliu bendrinti įrašo „Instagram“ istorijoje – kodėl gi ne?

Negaliu bendrinti įrašo „Instagram“ istorijoje – kodėl gi ne?

„Instagram“ turi daugybę funkcijų, kurios leidžia mums bendrauti su kitomis platformos paskyromis. Tačiau jie ne visada gali veikti taip, kaip manoma

„Fire Tablet“: naujausios kartos

„Fire Tablet“: naujausios kartos

Naujausios kartos „Amazon Fire Tablet“ turi keletą puikių funkcijų, leidžiančių linksminti visą šeimą. Išleidžiant naujus modelius

Kaip pridėti išnašų į „Google“ dokumentą

Kaip pridėti išnašų į „Google“ dokumentą

2022 m. lapkričio 23 d. atnaujino Steve'as Larneris. Išnašos „Google“ dokumentuose yra puikus būdas pridėti komentarų, cituoti nuorodas ar net pateikti nuorodas į šaltinius