17. Fjernelse af en forpligtelse fra en gren

Mål

  • At lære at slette grenens seneste forpligtelser

Revert er en kraftfuld kommando fra det foregående afsnit, der giver dig mulighed for at annullere eventuelle forpligtelser til arkivet. Imidlertid ses både originale og annullerede forpligtelser i historikken af grenen (når du bruger kommandoen git log).

Ofte efter at en forpligtelse allerede er lavet, indser vi, at det var en fejltagelse. Det ville være rart at have en fortryd kommando, der gør det muligt at slette den eller de forkerte forpligtelser straks. Denne kommando forhindrer, at der vises en eller flere uønskede forpligtelser i git log -historikken. 01 Nulstillingskommandoen

Vi har allerede brugt kommandoen reset til at matche bufferzonen og den valgte forpligtelse (HEAD commit blev brugt i den foregående lektion).

Når der gives en henvisningsreference (dvs. en gren, et hash- eller tagnavn), vises reset kommando vil …

  1. Overskriv den aktuelle gren, så den peger på den korrekte forpligtelse
  2. Valgfrit nulstille bufferzonen, så den overholder den angivne forpligtelse
  3. Valgfrit nulstille arbejdsmappen, så den svarer til den angivne forpligtelse

02 Tjek vores historie

Lad os lave en hurtig scanning af vores forpligtelseshistorik .

Kør:

git hist

Resultat:

Vi ser, at de sidste to forpligtelser i denne gren er “Ups “og” Revert Oops “. Lad os fjerne dem med kommandoen reset.

03 Marker denne gren først

Lad os markere den sidste forpligtelse med tag, so you can find it after removing a commit(s).

Kør:

git tag oops

04 Nulstil forpligtelse til tidligere Oops

I historikloggen ovenfor er forpligtelsen, der er mærket “v1”, før “Ups” og “Revert Oops” forpligter sig. Lad os nulstille grenen til det punkt. Da grenen har et tag, kan vi bruge tagnavnet i reset-kommandoen (hvis det ikke har et tag, kan vi bruge hash-værdien).

Kør:

git reset --hard v1git hist

Resultat:

Vores masterfilial peger på commit v1, og “Revert Oops” og “Oops” forpligter findes ikke længere i grenen. --hard -parameteren får arbejdsmappen til at afspejle det nye filialhoved.

05 Intet går nogensinde tabt

Hvad skete der med de forkerte forpligtelser? De er stadig i arkivet. Faktisk kan vi stadig henvise til dem. I begyndelsen af lektionen oprettede vi “oops” -tagget til den annullerede forpligtelse. Lad os se på alle forpligtelser.

Kør:

git hist --all

Resultat:

Det kan vi se de forkerte forpligtelser er ikke væk. De er ikke længere opført i mastergrenen, men forbliver stadig i arkivet. De ville stadig være i arkivet, hvis vi ikke taggede dem, men så kunne vi kun henvise til dem med deres hash-navne. Uhenviste forpligtelser forbliver i arkivet, indtil software til affaldsindsamling køres af systemet.

06 Nulstil farer

Nulstillinger i lokale grene er normalt uskadelige. Konsekvenserne af enhver “ulykke” kan tilbageføres ved hjælp af den korrekte forpligtelse.

Imidlertid kan andre brugere, der deler filialen, forveksles, hvis filialen deles på eksterne arkiver.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *