Mitä eroa on git resetin -mixed, -soft ja -hard välillä?

Mita Eroa On Git Resetin Mixed Soft Ja Hard Valilla



Gitissä jokainen sitoumus on linkitetty edelliseen sitoumukseen, ja HEAD osoittaa viimeisimpään toimitukseen työhaarassa. Toimitushistoria tallennetaan toimituspuuna. Joskus kehittäjien on kuitenkin muokattava toimitushistoriaa. Tätä tarkoitusta varten ' $ git reset ” -komentoa käytetään Git-tietovaraston historian muokkaamiseen ja tehtyjen virheiden korjaamiseen.

Tämä artikkeli selittää lyhyesti eron git reset -hard, -soft ja -mixed välillä.

Mitä eroa on git resetin -mixed, -soft ja -hard välillä?

Git tarjoaa useita nollausvaihtoehtoja. Sen mukaan, miten he käsittelevät sitoumuksia, kaikki käytettävissä olevat vaihtoehdot eroavat toisistaan. Ne kaikki muokkaavat Git-historiaa ja siirtävät PÄÄN taaksepäin. Lisäksi ne käsittelevät muutoksia eri tavalla, kuten:







  • ' -pehmeä ' -vaihtoehtoa käytetään '' $ git reset ” -komento säilyttää tiedostot ja palauttaa toimitusmuutokset Git-vaiheindeksiin.
  • ' $ git reset – sekoitettu ”-komentoa käytetään perumaan vahvistusmuutokset ja poistamaan tiedoston esityshakemistosta poistamatta sitä työhakemistosta.
  • ' – kovaa ' vaihtoehto ' $ git reset ” -komentoa käytetään poistamaan kaikki muutokset ja poistamaan ne paikallisesta työhakemistosta.

Otetaan esimerkki nähdäksesi kuinka ' $ git reset ” komento toimii eri vaihtoehdoilla!



Vaihe 1: Siirry haluttuun Git-varastoon

Siirry ensin haluamaasi Git-tietovarastoon käyttämällä ' CD 'komento:



$ CD 'C:\Mene \t on_repo'





Vaihe 2: Luo tiedosto

Luo nyt tiedosto suorittamalla alla annettu komento:

$ kosketus Tiedosto4.txt



Vaihe 3: Lisää tiedosto vaihehakemistoon

Käytä ' git add ”-komento lisätäksesi juuri luodun tiedoston esityshakemistoon:

$ git add Tiedosto4.txt

Vaihe 4: Tee muutokset

Lisää seuraavaksi kaikki muutokset toimivaan arkistoon suorittamalla ' git commit 'komento:

$ git commit -m 'Tiedosto4 lisätty'

Vaihe 5: Tarkista Git Log

Tarkista sitten Git-lokihistoria nähdäksesi viimeisimmät lisätyt sitoumukset:

$ git loki

Alla olevassa tulosteessa näkyy, että kaikki viimeisimmät lisätyt toimet näkyvät ja ' PÄÄ ” osoittaa viimeaikaiseen sitoumukseen:

Huomautus: Tarkistaaksesi PÄÄN nykyisen osoitinasennon paremmin, suorita ' git loki '-komento yhdessä ' -yksi linja 'lippu:

$ git loki -- verkossa

Alla olevassa lähdössä näkyy luettelo commit SHA -tiivisteistä toimitusviesteineen:

Vaihe 6: Käytä git reset -soft-komentoa

Jos haluat palauttaa lisätyt muutokset Git-arkistosta vaiheistusindeksiin, käytä ' git reset '-komento yhdessä '- pehmeä ” -vaihtoehto ja määritä haluamasi HEAD-asento, jossa osoitinta on siirrettävä:

$ git reset --pehmeä PÄÄ~ 1

Vaihe 7: Tarkista Gitin tila

Tarkista nyt HEADin palautuva sijainti ja tarkista Git-arkiston tila:

$ git-tila

Voidaan nähdä, että ' git reset – pehmeä ” -komento on palauttanut commit-muutokset Git-vaiheindeksiin. Lisäksi ' Tiedosto4.txt '-tiedosto on nyt Git-vaihehakemistossa ja se on sitova:

Vaihe 8: Tarkista Git Log

Nähdäksesi HEADin nykyisen sijainnin, suorita annettu komento yhdessä ' -yksi linja ”vaihtoehto:

$ git loki -- verkossa

Tässä PÄÄ osoittaa ' Tiedosto3 ' tehdä:

Vaihe 9: Käytä git reset -yhdistelmäkomentoa

Jos haluat kumota tehdyt muutokset ja poistaa tiedostot esitysalueelta poistamatta niitä työhakemistosta, suorita ' $ git reset – sekoitettu ”-komento ja sitoumuksen vaadittu HEAD-sijainti:

$ git reset -- sekoitettu PÄÄ~ 1

Vaihe 10: Tarkista Gitin tila

Katso äskettäin lisätyt muutokset tarkistamalla Git-arkiston tila:

$ git-tila

Voidaan havaita, että määritetyt sitoumusmuutokset poistetaan esitysalueelta. Ne on kuitenkin sijoitettu työalueelle:

Vaihe 11: Tarkista Git Log

Tarkista Git-arkiston viitelokihistoria sekä SHA-hajautus:

$ git loki -- verkossa

Vaihe 12: Käytä git reset - hard Command -komentoa

Jos haluat poistaa lisätyt muutokset Gitin paikallisesta työhakemistosta, suorita ' $ git reset – vaikea 'komento:

$ git reset -- kovaa PÄÄ~ 1

Vaihe 13: Tarkista palautettu HEAD-osoitin

Tarkista HEAD-osoitin palaamalla määritettyyn asentoon ja suorittamalla ' git loki 'komento:

$ git loki -- verkossa

Alla oleva tuloste näyttää, että PÄÄ osoittaa ' Tiedosto1 lisätty ' tehdä:

Vaihe 14: Tarkista Gitin tila

Jos haluat nähdä lisätyt muutokset, tarkista Git-tila:

$ git-tila

Voidaan nähdä, että meillä ei ole yhtään kappaletta ja vireillä olevia muutoksia Tiedosto2.txt ” tiedosto. Siksi File2.txt on poistettu kokonaan:

Vaihe 15: Tarkista arkiston sisältöluettelo

Vahvista arkiston sisältöluettelo suorittamalla ' ls 'komento:

$ ls

Kuten näette, ' Tiedosto2.txt 'tiedostoa ei ole nykyisessä hakemistossa:

Olemme selittäneet eron git reset -mixed-, -soft- ja -hard -vaihtoehtojen välillä.

Johtopäätös

' git reset ” -komentoa käytetään muutosten nollaamiseen, Git-tietovaraston historian muokkaamiseen ja virheiden korjaamiseen. ' git reset – pehmeä ” -komento säilyttää tiedostot ja palauttaa toimitusmuutokset Git-vaihealueelle. Sitä vastoin ' git reset – sekoitettu ” -komennolla kumoa tehdyt muutokset ja poista tiedosto esityshakemistosta poistamatta sitä työhakemistosta. Jos haluat poistaa kaikki muutokset ja poistaa ne Git-työalueelta, ' git reset – vaikea ”-komentoa voidaan käyttää. Tämä artikkeli havainnollistaa eroa git reset -mixed, -soft ja -hard välillä.