Sådan sletter du en forpligtelse i Git

Sådan sletter du en forpligtelse i Git

At slette en commit i Git er noget, du kan gøre oftere, end du ville forvente. Med sådan en almindelig opgave vil du sandsynligvis finde det praktisk at have en hurtig guide.

Sådan sletter du en forpligtelse i Git

Denne artikel svarer på, hvordan du sletter en Git-commit og andre mulige løsninger, du kan prøve. Så hvis du laver en fejl i din sidste forpligtelse eller ønsker at rydde op i din repos historie, så læs videre for at finde ud af det.

Sletning af en Commit i Git

Du kan slette en commit i Git på nogle få måder. Hvis du ikke vil eller kan ændre Git commit beskeden , så er den mest almindelige løsning at bruge “git reset” og “git revert” kommandoer.

For at bruge "git reset" skal du gøre dette:

  1. Find den commit du vil slette med git log .
    Sådan sletter du en forpligtelse i Git
  2. Brug git reset –soft [commit hash] til at fortryde en commit-kommando uden at "nuke" noget.
    Sådan sletter du en forpligtelse i Git
  3. Eller brug git reset –hard [commit hash] for at nulstille til commit før den du vil slette.
    Sådan sletter du en forpligtelse i Git
  4. Erstat "[commit hash]" med hashen for den commit, du målretter mod.

Alternativt kan du også bruge “git rebase -i HEAD~[Number]” til at rebase det sidste antal commits. Erstat [number] med antallet af commits. Git vil vise dig en fil, som du kan redigere og fjerne den commit, du ønsker at være væk. Gør kun dette, hvis du ikke allerede har skubbet en commit.

Dette er en simpel metode på overfladen, men vær forsigtig. Den fjerner permanent alle ændringer i commits efter den, du nulstiller den til, så vær sikker på, at det er præcis, hvad du vil have.

Alternativt kan du bruge "git revert" sådan her:

  1. Hvis du vil beholde ændringerne i din arbejdsmappe, skal du bruge git revert [commit hash] . Denne kommando opretter en ny commit, der fortryder ændringerne fra den commit, du angiver.
    Sådan sletter du en forpligtelse i Git
  2. Når du har vendt tilbage, skal du skubbe ændringerne til fjernlageret med git push .
    Sådan sletter du en forpligtelse i Git

Her er et andet alternativ, hvis du ønsker at slette flere, specifikke commits:

  1. Brug git checkout [last commit hash] til at tjekke den sidste commit, der skal forblive.
    Sådan sletter du en forpligtelse i Git
  2. Lav en ny filial med git checkout -b reparation .
    Sådan sletter du en forpligtelse i Git
  3. Kør git cherry-pick [specifik commit-hash] på den første commit, du vil bevare.
    Sådan sletter du en forpligtelse i Git
  4. Gentag for de andre commits, du vil bevare.
  5. Kør git checkout master til checkout master.
    Sådan sletter du en forpligtelse i Git
  6. Nulstil master til den sidste brugbare commit med git reset –hard [last commit hash] .
    Sådan sletter du en forpligtelse i Git
  7. Flet den nye gren til master med git merge repair .
    Sådan sletter du en forpligtelse i Git
  8. Kør derefter git push -f origin master for at skubbe til fjernbetjeningen.
    Sådan sletter du en forpligtelse i Git

Hvornår skal du slette Commits

Der er et par situationer, hvor det er bedst at fjerne en commit. Her er nogle af dem.

Dårlig kode

En af de mest almindelige grunde til, at du ønsker at slippe af med en commit, er, fordi koden i den simpelthen ikke skærer den. Måske har du lavet en fejl og vil starte forfra, eller måske har du indset, at resultatet ikke stemmer overens med det, du forsøger at opnå. For eksempel kan du have tilføjet en funktion, der er i konflikt med en anden del af din kode. Sletning af denne commit giver dig mulighed for at gå tilbage, løse problemet og derefter genbekræfte den rettede version.

Hvis du lige har begået et stykke kode og derefter opdaget en åbenlys fejl, såsom en fejl eller et stykke kode, der ikke burde have været der, men du ikke har tid til at rette det – det er en god grund for at slette commit. I stedet for at lade dette unødvendige eller fejlbehæftede stykke kode sidde i dit projekts historie (og potentielt forårsage forvirring eller endda katastrofale fejl i fejlrettelsen), kan du slette den commit. Hvis du gør det, holder du dit projekt rent.

Følsomme data

At begå følsomme data ved et uheld sker oftere, end du måske tror. Ikke overraskende kan det være en betydelig sikkerhedsrisiko, uanset om det er personligt eller firma. Alt fra adgangskoder og API-nøgler til personlige oplysninger kan snigende ende i din commit. Og når det først er derude i projektrummet, kan alle få adgang til det og potentielt bryde din eller dit teams sikkerhed.

Disse ulykker er måske endnu bedre grunde til at slette en commit end blot dårlig kode. Du kan redigere defekt kode ud og ikke bekymre dig om, at den forbliver i projekthistorikken, men dette er ikke en risiko, du ønsker at tage med følsomme data. For eksempel, hvis du ved et uheld begår en fil, der indeholder API-nøgler, vil fjernelse af denne commit forhindre, at denne nøgle falder i de forkerte hænder.

Holder historien ren

En anden solid grund til at slette en Git-commit er at holde din projekthistorik ren og enkel. Mens du arbejder på projektet, bliver din forpligtelseshistorie stadig mere rodet med mindre opdateringer, eksperimenter eller ændringer, der ikke længere er relevante. Når du af en eller anden grund vil kigge historien igennem, såsom at finde ud af, hvorfor du har foretaget en bestemt ændring eller vende tilbage til en stabil tilstand efter et eksperiment, kan en rodet historie blive et problem.

Ved at slette unødvendige commits holder du din projekthistorik ryddelig og nem for dig og andre på dit team at følge. Det er endnu mere nyttigt, før du fusionerer en filial, så du kan præsentere en klar, kortfattet og relevant historie for alle, der anmelder din kode. For eksempel, hvis du har flere commits, der blot var mindre justeringer af en funktion, vil du måske komprimere dem til en enkelt commit for at holde din historie pæn.

Bedste praksis og tips

Før du sletter en commit, skal du følge nogle bedste fremgangsmåder for at holde dit projekt funktionelt og undgå utilsigtede konsekvenser.

Sikkerhedskopier dit arbejde

Før du sletter en commit i Git, er det en god idé at sikkerhedskopiere dit arbejde, selvom du tror, ​​det kan være værdiløst at beholde. Det kan virke som ekstra arbejde, men en backup er et sikkerhedsnet, hvis tingene ikke går som planlagt.

Du kan oprette en sikkerhedskopi ved at lave en ny gren, der afspejler dit lagers nuværende tilstand. For eksempel, før du sletter en commit, der introducerede en ny funktion, skal du oprette en backup-gren "feature-backup." Det vil give dig frihed til at eksperimentere og slette commits uden frygt for at miste vigtigt arbejde. Så hvis du senere indser, at du har brug for noget fra den slettede commit, har du ikke mistet det for altid. Hvis du beslutter dig for, at du ikke længere har brug for den sikkerhedskopi, kan du slette Git-grenen .

Slet ikke offentlige tilsagn

Når du arbejder med offentlige arkiver, især i open source-projekter eller teammiljøer, bør du være ekstra forsigtig med at slette commits. Når først en commit er skubbet til et offentligt lager, og andre har trukket den, kan sletning af commit forvirre eller distrahere alle involverede og forstyrre arbejdet. Det er en form for at trække et tæppe ud under nogen – ikke en behagelig oplevelse, men temmelig hensynsløs. Hvis du skal slette en commit, der allerede er offentlig, skal du fortælle dit team eller projektbidragydere på forhånd, så de ved, hvad der foregår. På denne måde er alle opmærksomme og kan tilpasse deres arbejde derefter.

Brug Revert til Offentlige Repos

Hvis du stadig ønsker at fortryde ændringer i et offentligt lager, i stedet for at slette en commit permanent, kan du fortryde en fletning i Git . I modsætning til git reset, som effektivt omskriver historien, skaber "git revert" en ny commit, der fortryder ændringerne foretaget i en tidligere commit.

Derfor er det meget sikrere og mere gennemsigtigt at bruge denne kommando, især når du arbejder med andre. Du kommunikerer åbent til dine teammedlemmer, at du måske har begået en fejl og giver en forpligtelse tilbage, der løser det. Hvis du har skubbet en commit med en væsentlig fejl, giver "git revert" dig mulighed for hurtigt at ophæve virkningerne af den fejl, mens du holder projektets historie intakt. Dette bevarer projekthistorikkens integritet og holder alles lokale lager i overensstemmelse med fjernbetjeningen.

Dobbelttjek før sletning

En af de største risici, når du sletter commits i Git, er at miste den tid og indsats, du lægger i den commit. For at forhindre dette skal du gennemgå alle ændringerne i hver commit, du vil fjerne. Brug "git log eller git show [commit hash]" for at inspicere commits. Hvis du fjerner en commit, der har tilføjet flere funktioner til din kode, skal du sørge for, at dit projekt ikke har brug for disse funktioner for at fungere, eller at de er replikeret andre steder.

Forpligter sig til det

Der er mange grunde til at slette en commit på Git, som at holde din historie ryddelig, fortryde forvirrende fejl eller at holde dine følsomme oplysninger beskyttet mod nysgerrige øjne. Uanset årsagen, husk, at der er to måder at gøre det på – "git reset" og "git revert", som hver tjener et andet formål, så vælg den, der passer til dit projekt. Du kan også omdøbe Git-grenen for yderligere klarhed.

Har du nogensinde været nødt til at slette en commit i Git? Hvad var din oplevelse, og har du nogle tips til at dele? Efterlad en kommentar nedenfor og fortsæt samtalen.


Sådan rettes CapCut Reverse, der ikke virker

Sådan rettes CapCut Reverse, der ikke virker

Der er mange grunde til, at du måske elsker at filme og redigere. Du kan filme steder, du har besøgt, mennesker, du elsker, og fange ethvert særligt øjeblik, du ønsker

ISperm lader dig tjekke din sæd ved hjælp af en IPad

ISperm lader dig tjekke din sæd ved hjælp af en IPad

Du har haft en hård dag på arbejdet. Du sætter iPad'en op på sofabordet. Du ser noget Netflix, lukker gardinet, analyserer dit sædtal, tjekker Twitter

Parrots Disco Drone tager papirfly til næste niveau

Parrots Disco Drone tager papirfly til næste niveau

Tænk på en drone, og du vil tænke på en summende quadcopter, der svæver over en park. Det eller krig. Men fire motorer er så 2015, ser det ud til, som drone

Du kan hjælpe Crowdfund med en statue af verdens første rumkat

Du kan hjælpe Crowdfund med en statue af verdens første rumkat

Ugens kickstarter: En statue af Félicette, den første kat i rummet Laika, den første hund i rummet, har en statue i Moskva. Skinke, astrochimpen

Sådan kontrolleres, hvem der ejer en fil i Linux

Sådan kontrolleres, hvem der ejer en fil i Linux

Hvis du vil tjekke, hvem der ejer en fil, fungerer Linux meget anderledes end andre systemer. Der er ingen mulighed for bare at højreklikke på en fil og gå til Egenskaber

Sådan diagnosticeres og rettes en Xbox-controller, der ikke oplader

Sådan diagnosticeres og rettes en Xbox-controller, der ikke oplader

Spillere elsker Xbox-konsoller for deres bagudkompatibilitet, hvilket betyder, at spillere kan bruge ældre tilbehør på de nyere konsoller. Med udgivelsen af ​​Xbox

Sådan bruger du din egen router med Verizon Fios

Sådan bruger du din egen router med Verizon Fios

Hvis du bruger Verizon som internetudbyder og har din egen router, må tanken om at droppe den lejede Verizon-router have strejfet dig. Ved brug af

Kan ikke dele opslag til Instagram-historie – hvorfor ikke?

Kan ikke dele opslag til Instagram-historie – hvorfor ikke?

Instagram har en række funktioner, der giver os mulighed for at interagere med andre konti på platformen. De virker dog måske ikke altid, som de skulle

Fire Tablet: Seneste generationer

Fire Tablet: Seneste generationer

Den seneste generation af Amazon Fire Tablet kommer med nogle fantastiske funktioner til at holde hele familien underholdt. Med nye modeller udgivet

Sådan tilføjer du fodnoter til et Google-dokument

Sådan tilføjer du fodnoter til et Google-dokument

Opdateret 23. november 2022 af Steve Larner. Fodnoter i Google Docs er en fantastisk måde at tilføje kommentarer, citere referencer eller endda give et link til kilder i