Git Reflog - Kuinka palauttaa poistettu haara, jota ei ole yhdistetty



Tämä artikkeli Git Reflogista on kattava opas kuinka palauttaa haarautunut haara Gitissä Git Reflogin avulla.

'Oletko koskaan menettänyt sivuliikkeen, jonka lähdekoodia ei ollut vielä yhdistetty' haara '-haaraan tai päähaaraan? Entä jos haluat luoda poistetun haaran uudelleen, vaikka sen työ on jo yhdistetty päähaaraan? ' . Ainoa ratkaisu tällaisiin tilanteisiin on Siirry päiväkirjaan .

Tämän Git Reflog -artikkelin kautta autan sinuaymmärrä skenaariot, joissa työsi haarassa saattaa kadota, ja miten haara palautetaan.Tässä artikkelissa korostetaan myös lähestymistapaa, jota voit käyttää estääkseen oksan tahattoman menetyksen suuressa projektissa työskennellessäsi.





    1. Mikä on Git Reflog?
    2. Kuinka ja milloin sivuliike poistetaan?
    3. Palauta poistettu haara
    4. Mikä työ palautetaan, kun poistettu haara palautetaan?
    5. Git Reflog -alikomennot

Joten, aloitetaan tämän artikkelin kanssa.



Tarkastellaan skenaariota, maintainerin on yhdistettävä monia ominaisuushaaroja eri yhteistyökumppaneilta ja poistettava ne sitten, mutta haara poistetaan vahingossa ennen työn yhdistämistä?

No, ennen kuin siirryn tähän artikkeliin, haluan kertoa teille, että se ei ole mahdollista Gitissä. ovat turvallisia ja toimivat tarkastuspostina, eivät salli sinun tehdä niin. Joten tässä Git Reflog tulee kuvaan.

Mikä on Git Reflog?

”Reflog” -komento pitää a seurata jokainen viitteisiin tehty muutos (haarat tai tunnisteet) arkistossa ja pitää lokihistorian haaroista ja tunnisteista, jotka on luotu paikallisesti tai tarkistettu. Viitelokeja, kuten sitoutumisen tilannekuva siitä, kun haara luotiin tai kloonattiin, kirjattiin ulos, nimettiin uudelleen tai mitä tahansa haaralle tehtyä sitoutumista ylläpidetään ja luetellaan reflog-komennolla.



Huomautus: Haara voidaan palauttaa työhakemistostasi vain, jos haara on koskaan ollut paikallisessa arkistossa, ts. haara on joko luotu paikallisesti tai se on kirjattu paikallisen tietovarastosi etätietovarastosta, jotta Git voi tallentaa viitehistorian lokinsa.

Tämä komento on suoritettava arkistossa, jossa haara oli kadonnut. Jos katsotetätallennustilanne, sinun on suoritettava reflog-komento kehittäjän koneessa, jolla oli haara.

komento: mene reflogiin

Nyt kun tiedät, mikä on Git Reflog, anna meilleyritä poistaa sekä yhdistetty että yhdistämätön haara ja nähdä, miten Git käsittelee sitä?

Vaihe 1: Luettele haarat, jotka on yhdistetty isäntään

Tarkista ensin hallita ’Haara, jos olet jollakin muulla haaralla käyttäen komentoa:

$ git kassalle

Tuotos

Git Checkout Master - Git Reflog - Edureka

Saadaksesi nyt luettelon yhdistetyistä haaroista, mainitse seuraava komento:

$ git -haara - yhdistetty

Tuotos:

Vaihe 1.1: Poista sitten yhdistetty haara:

$ git -haara - d-numero # 902

Tuotos:

Haara 'issue # 902' poistettiin, koska se on jo yhdistetty päähaaraan.

Vaihe 2: Luettakaamme nyt haarat, joita ei ole yhdistetty isäntään.

$ git -haara - ei yhdistetty

Tuotos

lajittele () c ++

Vaihe 2.2: Poistetaan lopuksi yhdistämätön haara seuraavalla komennolla:

$ git-haara -d prepod

Jos yrität poistaa jonkin haaran keskeneräisestä työstä sanomalla ”preprod” haara, git näyttää varoitusviestin.

Tuotos

Ennen kuin kerron sinulle, kuinka voit palauttaa tämän artikkelin Git Reflog -tietoja, haluan kertoa sinulle, mitä tapahtuu, kun haara poistetaan ja missä olosuhteissa haara voidaan palauttaa.

Kuinka ja milloin sivuliike poistetaan?

Kuten tiedämme, että Git on a Hajautettu versionhallintajärjestelmä (DVCS), jokainen kone, jossa on klooni tai kopio arkistosta, toimii molempina solmu ja a napa . Tämätarkoittaa, että jokaisella koneella on oma kopio koko arkistokoodista ja historiasta.Tarpeetonta sanoa jakaminen työsi muiden kanssa ja julkaisu sama.

Näin ollen tällaisissa tilanteissa voi olla 3 tapausta, jolloin sivuliike poistetaan reaalimaailman tilanteessa, jossa monet avustajat työskentelevät suuressa projektissa. Seuraavat tapaukset voivat olla:

Tapaus 1 - Kehittäjä voi joko yhdistää tai poistaa haaran

Tarkastellaan skenaariota, jossa kehittäjä sulauttaa piirteen haaran päähaaraan paikallisesti ja poistaa sitten piirteen haaran käyttämällä ‘ git-haara ”-Komennolla“ - d ”Lippu, kuten aikaisemmissa kuvakaappauksissa näkyy.

Komento: ’Git-haara -d haaran_nimi’

Saattaa myös tapahtua, että kehittäjä päättää poistaa roskakoriin tehdyt muutokset ja päättää poistaa haaran yhdistämättä sitä muihin haaroihin seuraavan komennon avulla:

Komento: 'Git-haara -D-haaran_nimi'

Yllä olevan komennon avulla kehittäjä onpoista voimakkaasti haara, joka ohittaa git-varoituksen

$ git-haara -D preprod

Tuotos

Huomautus : ‘Preprod’ -haara ei enää ole luettelossa, kun suoritat ‘git branch’ -komennon. Joten, ytälle haaralle tallennettu työmme menetetään.

Tapaus 2 - Kehittäjä poistaa haaran jaetusta arkistosta

Tarkastellaan skenaariota, jossa kehittäjä, jolla on luku- / kirjoitusoikeus, yrittää poistaa etähaaran voimakkaastikäyttämällä ‘git push’ -komentoa ’–delete’ -lipun kanssa.

$ git push -alku - poista pikakorjaus

Tuotos

Tämän lisäksi voi myös olla tapaus, jossa valtuuttamaton tai haitallinen käyttäjä pakottaa työnnön poistamaan etähaara.Tällöin ylläpitäjä voi palauttaa poistetun pikakorjaushakemuksen vain, jos kehittäjäoli aiemmin käynyt läpi tämän haaran. Tässä skenaariossa sen paikallisella arkistolla on edelleen referenssilokit.

Jos ylläpitäjä ei pysty palauttamaan haaraa, sivuliikkeen omistajan, joka sen on poistanut, on toiputtava paikallisista reflogeistaan.

Tapaus 3 - Koukkuohjelma, jolla on superoikeudet, poistaa haaran

Tämä voi olla harvinainen, mutta mahdollinen skenaario, että koukkuohjelma käynnistyy tietyssä git-operaatiotapahtumassa ja voima poistaa haarat, joita ei ole vielä yhdistetty. Sinä pystytHarkitse yhtä yllä mainituista komennoista komentosarjassa sudo-oikeuksilla.

Nyt kun tiedät mitä tapahtuu, kun poistat haaran, siirrymme tämän artikkelin kanssa Git Reflog -sivustolle ja katso, miten kadonnut haara palautetaan.

Palauta poistettu haara Git Reflog -sovelluksella

Vaihe 1 : Kaikkien viitteiden historialokit

Hanki luettelo kaikista tämän arkiston kaikkien viitteiden (‘master’, ‘uat’ ja ‘prepod’) paikallisista tallennetuista historialokeista.

mene reflogiin

Vaihe 2 : Tunnista historialeima

Kuten voit viitata yllä olevaan tilannekuvaan, Korostettu sitoutumistunnus: e2225bb yhdessä HEAD-osoitinindeksin kanssa: 4 on se kun jälleenmyynti ’Haara luotiin nykyisestä HEAD-osoittimesta, joka osoittaa uusimpaan työhösi.

Vaihe 3 : Palauta

Palauttaa takaisin ”Jälleenmyynti ‘Haara käyttää komentoa”Git checkout” ohittaa HEAD-osoittimen viitteen indeksitunnuksella - 4.Tämä on osoitinviite, kun ”preprod” -haara luotiin pitkään sitoutumistunnuksella, joka on korostettu lähdön kuvakaappauksessa.

git checkout -b preprod HEAD @ {4}

Tuotos

Ja voila! ” jälleenmyynti ”Haara palautetaan takaisin koko lähdekoodisi kanssa.

HUOMAUTUS : Anna minun btoista yllä käytetty git checkout -komento uudelleen ja auttaa sinua ymmärtämään paremmin:

‘Git checkout’ -komento on ylikuormitettu komento (aivan kuten mikä tahansa Java-ylikuormitettu toiminto). Tämä on osa, josta varsinainen haara palautetaan.

Tämä yksittäinen komento tarkistaa ensin aikaisemman historian aikaleiman, jonka HEAD @ {4} -osoitin ja luo sitten haaran nimeltä 'preprod' käyttämällä '-b' -vaihtoehtoa sekä vaihtaa työhakemistosi uuteen haaraan.

Tämä tarkoittaa, että haaroitettu haara tulee olemaan 'masterista' 'preprodiksi', kuten näytössä näkyy.Voit nyt yhdistää sen haaroitusmallisi mukaan pää- tai vapautushaaraan.

Nyt kun tiedät kuinka haara palautetaan, haluan kertoa sinulle, mikä työ palautetaan, kun poistettu haara palautetaan.

Mikä työ palautetaan, kun poistettu haara palautetaan?

Piilotetut ja varastoluetteloluetteloon tallennetut tiedostot palautetaan takaisin. Kaikki jäljittelemättömät tiedostot menetetään. Minä myöst on hyvä aina järjestää ja sitouttaa työsi tai kätkeä ne.

Voit hakea tietyn haaran tai tunnisteen lokiviitteet suorittamalla komennon - “git reflog”.

Esimerkki: Jos haluat tarkistaa pelkästään uat-haaran lokiviitteet, käytä komentoa “git reflog uat”.

ero menetelmän ylikuormituksen ja ohittamisen välillä

Git Reflog -alikomennot

mene reflogiin

Avaa komentosivu avaamalla komento

$ git reflog --apu

Tuotos

mene reflogiin näytä

Näyttää komentorivillä olevan viitteen lokit.

git reflog show -mestari @ {0}

mene reflogiin mennä umpeen

Tätä komentoa käytetään karsimaan vanhemmat reflog-merkinnät.

git reflog vanhenee

mene reflogiin poistaa

Tämä komento poistaa yksittäiset merkinnät reflog-historiasta.

git reflog poista

mene reflogiin olemassa

Tämä komento tarkistaa, onko viitteellä (haaralla tai tagilla) reflog - lokihistoriatietoja.

git reflog on olemassa

Edellä mainittujen komentojen lisäksi Git Reflog -komento vie useita alikomentoja ja erilaisia ​​vaihtoehtoja yllä mainittujen alikomentojen mukaan. Jatkokäsittelyä varten git reflog -apu ”Pääteikkunasta.

Tämän avulla olemme päässeet loppuun tähän artikkeliin Git Reflogissa.DevOpsin tarkoituksena on luoda laadukkaampia ohjelmistoja nopeammin ja luotettavammin samalla kutsumalla tiimien välistä suurempaa viestintää ja yhteistyötä. Jos tämä artikkeli kiehtoo sinua, c helvetti Edureka, luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, joka levisi ympäri maailmaa. Edureka DevOps -sertifiointikoulutuskurssi auttaa oppijoita ymmärtämään DevOpsia ja saa asiantuntemusta erilaisista DevOps-prosesseista ja työkaluista, kuten Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack ja GIT SDLC: n useiden vaiheiden automatisoimiseksi.

Onko sinulla kysymys meille? Mainitse se ”Git Reflog” -artikkelin kommenttiosassa, niin palaamme asiaan ASAP-palvelussa.