Git: Rediger en eksisterende forpligtelsesmeddelelse

Fejl er almindelige, vi begår dem alle. Derfor satte de viskelæder på blyanter. Og dette er ikke anderledes med værktøjer som Git. Selvom nogle ændringer kan være svære at fortryde, er der normalt en måde.

Så hvad hvis du vil ændre en eksisterende commit-besked? Heldigvis er dette nemt at gøre i Git, men metoden kan ændre sig lidt afhængigt af nogle faktorer.

Ret sidste forpligtelse, endnu ikke skubbet til fjernbetjening

Dette er det enkleste tilfælde, da der ikke er behov for at ændre et fjernlager, du skal blot ændre dit eget. I dette tilfælde kan du bruge følgende kommando:

$ git commit --amend

Hvis du kører denne kommando, åbnes en editor, hvor du kan ændre sidste begå besked. Når du er færdig og gemmer/lukker editoren, vil commit-meddelelsen blive ændret.

Personligt foretrækker jeg at gøre de fleste ting på kommandolinjen, hvilket du kan gøre ved at tilføje et argument og besked til kommandoen ovenfor:

$ git commit --amend -m "Added a new file"

At gøre det på denne måde vil ikke åbne editoren, men i stedet vil det bare ændre commit-meddelelsen med det samme.

Ret sidste forpligtelse, skubbet til fjernbetjening

Dette er et andet almindeligt tilfælde, og det er lidt sværere at rette, ikke kun fordi vi skal ændre vores eget lager, men vi skal også modificere fjernlageret, som kan være længere fremme end din lokale afdeling.

Det første skridt er at ændre den sidste forpligtelse, ligesom vi gjorde i det foregående afsnit:

$ git commit --amend -m "Added a new file"

Derefter skal du skubbe disse ændringer til fjernlageret. Dette skal dog gøres ved hjælp af --force flag.

$ git push <remote> <branch> --force

Vi er nødt til at gøre det på denne måde for at overskrive fjernlageret med vores egen lokale stat.

Vær opmærksom på, at ved at tvinge skub, vil du også taber eventuelle commits på den lokale afdeling, som du ikke allerede har i din lokale afdeling. Fortsæt med forsigtighed!

Tjek vores praktiske, praktiske guide til at lære Git, med bedste praksis, brancheaccepterede standarder og inkluderet snydeark. Stop med at google Git-kommandoer og faktisk lærer det!

Hvis du kan fange fejlen hurtigt nok, vil det ikke være et problem at foretage ændringen. Ellers skal du muligvis finde en anden løsning for at undgå at miste ændringer, der er foretaget efter den commit-meddelelse, du vil ændre.

Brug Interactive Rebase

En anden mulighed, som er mere fleksibel end de tidligere beskrevne løsninger, er at bruge en interaktiv rebase. Ved at gøre dette kan du inspicere de sidste N commits og foretage ændringer i dem, herunder plukning, squashing osv.

For at starte rebasen kan du bruge følgende kommando:

$ git rebase -i HEAD~n

Her, n er antallet af commits, du ønsker at inspicere og redigere. Du vil derefter se en liste over tilsagn, der ligner denne:

$ $ git rebase -i HEAD~4
pick 788ebf0 Oops, I forgot to add a new file
pick ced1329 Fixed a super critical bug
pick 5e9cdc5 Added a new file



















Som du kan se, er alle de sidste N commits listet, og du kan ændre deres beskeder efter behov.

Tidsstempel:

Mere fra Stablemisbrug