Koja je razlika između git reset –mixed, –soft i –hard?

Koja Je Razlika Izmedu Git Reset Mixed Soft I Hard



Na Gitu je svaki commit povezan s prethodnim commitom, a HEAD pokazuje na najnoviji commit u radnoj grani. Povijest obveza pohranjena je kao stablo obveza. Međutim, ponekad programeri moraju modificirati povijest predaje. U tu svrhu, ' $ git reset ” Naredba se koristi za izmjenu povijesti Git repozitorija i ispravljanje grešaka koje su napravljene.

Ovaj će članak ukratko objasniti razliku između git reset –hard, –soft i –mixed.

Koja je razlika između git reset –mixed, –soft i –hard?

Git nudi višestruke mogućnosti resetiranja. Na temelju načina na koji postupaju s obvezama, sve dostupne opcije razlikuju se jedna od druge. Svi modificiraju Git povijest i pomiču GLAVU natrag. Štoviše, različito postupaju s promjenama, kao što su:







  • ' – mekan ' opcija koja se koristi s ' $ git reset ” naredba za zadržavanje datoteka i vraćanje promjena izvršenja u Git staging indeks.
  • $ git reset – miješano ” koristi se za poništavanje promjena predaje i uklanjanje datoteke iz indeksa prikazivanja bez brisanja iz radnog direktorija.
  • ' – teško ' opcija s ' $ git reset ” Naredba se koristi za brisanje svih promjena i njihovo uklanjanje iz lokalnog radnog direktorija.

Uzmimo primjer da vidimo kako ' $ git reset ” naredba radi s različitim opcijama!



Korak 1: Idite na željeno Git spremište

Najprije prijeđite na željeno Git spremište koristeći ' CD ” naredba:



$ CD 'C:\Idi \t is_repo'





Korak 2: Izradite datoteku

Sada izvršite donju naredbu za stvaranje datoteke:

$ dodir Datoteka4.txt



Korak 3: Dodajte datoteku u Indeks prikazivanja

Koristiti ' git dodati ” za dodavanje novogenerirane datoteke u probni indeks:

$ git dodati Datoteka4.txt

Korak 4: Utvrdite promjene

Zatim dodajte sve promjene u radni repozitorij izvršavanjem ' git počiniti ” naredba:

$ git počiniti -m 'Datoteka4 dodana'

Korak 5: Provjerite Git Log

Zatim provjerite povijest dnevnika Git da vidite najnovije dodane obveze:

$ git dnevnik

U ispisu ispod, može se vidjeti da su prikazana sva najnovija dodana predavanja, a ' GLAVA ” pokazuje na nedavno izvršenje:

Bilješka: Za provjeru trenutnog položaja GLAVE na bolji način, izvršite ' git dnevnik ' zajedno s ' -jedna linija ” zastava:

$ git dnevnik --na liniji

Ispod navedenog izlaza prikazan je popis SHA raspršivanja predaje s porukama predaje:

Korak 6: Koristite naredbu git reset –soft

Da biste vratili dodane promjene iz Git repozitorija u probni indeks, upotrijebite ' git resetirati ” naredba zajedno s „– mekan ” i navedite željenu poziciju GLAVE gdje je potrebno pomaknuti pokazivač:

$ git resetirati -- mekan GLAVA~ 1

Korak 7: Provjerite Git status

Sada provjerite položaj vraćanja GLAVE provjerite status Git repozitorija:

$ git status

Može se vidjeti da je „ git reset –soft ” naredba je vratila promjene predaje u Git staging indeks. Štoviše, ' Datoteka4.txt ” datoteka je sada u Git staging indeksu i treba je predati:

Korak 8: Provjerite Git Log

Za pregled trenutne pozicije HEAD, pokrenite datu naredbu zajedno s ' -jedna linija ” opcija:

$ git dnevnik --na liniji

Ovdje GLAVA pokazuje na ' Datoteka3 ' počiniti:

Korak 9: Koristite git reset — miješana naredba

Za poništavanje izvršenih promjena i uklanjanje datoteka iz pripremnog područja bez brisanja iz radnog direktorija, izvršite ' $ git reset – miješano ” naredba zajedno sa traženom HEAD pozicijom urezivanja:

$ git resetirati --mješoviti GLAVA~ 1

Korak 10: Provjerite Git status

Pregledajte novo dodane promjene provjerom statusa Git repozitorija:

$ git status

Može se uočiti da su specificirane promjene predaje uklonjene iz scenskog područja. Međutim, oni su smješteni u radnom području:

Korak 11: Provjerite Git Log

Provjerite referentnu povijest dnevnika Git repozitorija zajedno sa SHA hashom:

$ git dnevnik --na liniji

Korak 12: Koristite git reset — hard naredbu

Za uklanjanje dodanih promjena iz Git lokalnog radnog direktorija, izvršite ' $ git reset – teško ” naredba:

$ git resetirati --teško GLAVA~ 1

Korak 13: Provjerite vraćeni HEAD pokazivač

Za provjeru pokazivača HEAD, vratite se na navedeni položaj, pokrenite ' git dnevnik ” naredba:

$ git dnevnik --na liniji

Donji rezultat pokazuje da GLAVA pokazuje na ' Datoteka1 dodana ' počiniti:

Korak 14: Provjerite Git status

Za pregled dodanih promjena provjerite Git status:

$ git status

Može se vidjeti da nemamo tragova i promjena na čekanju za ' Datoteka2.txt ' datoteka. Stoga je File2.txt potpuno uklonjen:

Korak 15: Provjerite popis sadržaja repozitorija

Za provjeru popisa sadržaja repozitorija pokrenite ' ls ” naredba:

$ ls

Kao što vidite, ' Datoteka2.txt ” datoteka ne postoji u trenutnom direktoriju:

Objasnili smo razliku između opcija git reset –mixed, –soft i –hard.

Zaključak

' git resetirati ” Naredba se koristi za resetiranje promjena, modificiranje povijesti Git repozitorija i ispravljanje grešaka. ' git reset –soft ” naredba čuva datoteke i vraća promjene uvrštenja u Git staging područje. Nasuprot tome, ' git reset – miješano ” naredba poništava promjene predaje i uklanja datoteku iz probnog indeksa bez brisanja iz radnog direktorija. Da biste izbrisali sve promjene i uklonili ih iz radnog područja Git, ' git reset – teško ” može se koristiti naredba. Ovaj je članak ilustrirao razliku između git reset –mixed, –soft i –hard.