Git: een bestaand commit-bericht wijzigen

Fouten komen vaak voor, we maken ze allemaal. Daarom zetten ze gummen op potloden. En dit is niet anders met tools als Git. Hoewel sommige wijzigingen moeilijk ongedaan kunnen worden gemaakt, is er meestal een manier.

Dus wat als je een bestaand commit-bericht wilt wijzigen? Gelukkig is dit eenvoudig te doen in Git, maar de methode kan een beetje veranderen, afhankelijk van een aantal factoren.

Laatste vastlegging repareren, nog niet op afstand gepusht

Dit is het eenvoudigste geval, aangezien het niet nodig is om een โ€‹โ€‹externe repository aan te passen, u hoeft alleen uw eigen repository aan te passen. In dit geval kunt u de volgende opdracht gebruiken:

$ git commit --amend

Als u deze opdracht uitvoert, wordt een editor geopend waarin u de kunt wijzigen laatste commit bericht. Als je klaar bent en de editor opslaat/sluit, wordt het commit-bericht gewijzigd.

Persoonlijk geef ik er de voorkeur aan om de meeste dingen op de opdrachtregel te doen, wat je kunt doen door een argument en bericht toe te voegen aan de bovenstaande opdracht:

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

Als je het op deze manier doet, wordt de editor niet geopend, maar in plaats daarvan wordt het commit-bericht onmiddellijk gewijzigd.

Laatste commit herstellen, naar extern gepusht

Dit is een ander veelvoorkomend geval, en het is wat moeilijker op te lossen, niet alleen omdat we onze eigen repository moeten aanpassen, maar we moeten ook de remote repository aanpassen, die verder kan liggen dan je lokale branch.

De eerste stap is om de laatste commit te wijzigen, net zoals we deden in de vorige sectie:

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

Vervolgens moet u deze wijzigingen naar de externe repository pushen. Dit moet echter worden gedaan met behulp van de --force vlag.

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

We moeten het op deze manier doen om de externe repository te overschrijven met onze eigen lokale staat.

Houd er rekening mee dat door te forceren, u ook verliezen alle commits op de lokale branch die je nog niet hebt in je lokale branch. Ga voorzichtig verder!

Bekijk onze praktische, praktische gids voor het leren van Git, met best-practices, door de industrie geaccepteerde normen en bijgevoegd spiekbriefje. Stop met Googlen op Git-commando's en eigenlijk leren het!

Als u de fout snel genoeg kunt opvangen, is het geen probleem om de wijziging door te voeren. Anders moet je misschien een andere oplossing vinden om te voorkomen dat je wijzigingen verliest die zijn gemaakt na het vastleggingsbericht dat je wilt wijzigen.

Interactieve rebase gebruiken

Een andere optie, die flexibeler is dan de eerder beschreven oplossingen, is het gebruik van een interactieve rebase. Door dit te doen, kun je de laatste N commits inspecteren en er wijzigingen in aanbrengen, inclusief picken, pletten, etc.

Om de rebase te starten, kunt u de volgende opdracht gebruiken:

$ git rebase -i HEAD~n

Hier n is het aantal commits dat je wilt inspecteren en bewerken. Je ziet dan een lijst met commits, vergelijkbaar met dit:

$ $ 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



















Zoals je kunt zien worden alle laatste N commits weergegeven, en je kunt hun berichten naar behoefte aanpassen.

Tijdstempel:

Meer van Stapelmisbruik