Git: Endre en eksisterende forpliktelsesmelding

Feil er vanlige, vi gjør dem alle. Derfor setter de viskelær på blyanter. Og dette er ikke annerledes med verktøy som Git. Selv om noen endringer kan være vanskelige å angre, er det vanligvis en måte.

Så hva om du vil endre en eksisterende forpliktelsesmelding? Heldigvis er dette enkelt å gjøre i Git, men metoden kan endre seg litt avhengig av noen faktorer.

Fiks siste forpliktelse, ennå ikke skjøvet til fjernkontroll

Dette er det enkleste tilfellet siden det ikke er nødvendig å endre et eksternt depot, du trenger bare å endre ditt eget. I dette tilfellet kan du bruke følgende kommando:

$ git commit --amend

Hvis du kjører denne kommandoen, åpnes en editor der du kan endre siste forplikte melding. Når du er ferdig og lagrer/lukker redigeringsprogrammet, vil commit-meldingen bli endret.

Personlig foretrekker jeg å gjøre det meste på kommandolinjen, noe du kan gjøre ved å legge til et argument og melding til kommandoen ovenfor:

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

Å gjøre det på denne måten vil ikke åpne redigeringsprogrammet, men i stedet vil det bare endre commit-meldingen umiddelbart.

Reparer siste forpliktelse, skjøvet til ekstern

Dette er et annet vanlig tilfelle, og det er litt vanskeligere å fikse, ikke bare fordi vi må endre vårt eget depot, men vi må også modifisere det eksterne depotet, som kan være lenger fremme enn din lokale filial.

Det første trinnet er å endre den siste forpliktelsen, akkurat som vi gjorde i forrige avsnitt:

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

Deretter må du sende disse endringene til det eksterne depotet. Dette må imidlertid gjøres ved hjelp av --force flagg.

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

Vi må gjøre det på denne måten for å overskrive det eksterne depotet med vår egen lokale stat.

Vær oppmerksom på at ved å tvinge dyttet, vil du også gjøre det taper eventuelle forpliktelser på den lokale avdelingen som du ikke allerede har i din lokale avdeling. Fortsett forsiktig!

Sjekk ut vår praktiske, praktiske guide for å lære Git, med beste praksis, bransjeaksepterte standarder og inkludert jukseark. Slutt å google Git-kommandoer og faktisk lære den!

Hvis du kan fange feilen raskt nok, vil det ikke være noe problem å gjøre endringen. Ellers må du kanskje finne en annen løsning for å unngå å miste endringer som er gjort etter commit-meldingen du ønsker å endre.

Bruk Interactive Rebase

Et annet alternativ, som er mer fleksibelt enn de tidligere beskrevne løsningene, er å bruke en interaktiv rebase. Ved å gjøre dette kan du inspisere de siste N forpliktelsene og gjøre endringer i dem, inkludert plukking, squashing osv.

For å starte rebasen kan du bruke følgende kommando:

$ git rebase -i HEAD~n

Her n er antallet forpliktelser du vil inspisere og redigere. Du vil da se en liste over forpliktelser, lik dette:

$ $ 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 siste N forpliktelsene oppført, og du kan endre meldingene deres etter behov.

Tidstempel:

Mer fra Stackabuse