'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.
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
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.