Revert een commit

From A-Eskwiki
Revision as of 21:11, 9 October 2017 by Daanr (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Soms zit er een WebCie'er te blunderen en moet dat even rechtgetrokken worden. Git to the rescue!

Als je zelf een fout hebt gemaakt en gecommit, maar het nog niet gepusht hebt, kan je dat lokaal terugdraaien zonder dat iemand ooit je blunders hoeft te zien. Je fixt gewoon de fout in code, staget je wijzigingen met git add, en reviseert dan je foutieve commit met git commit --amend. Je hebt dan ook nog eens de mogelijkheid om de omschrijving van de commit aan te passen.

Als je een commit lokaal volledig ongedaan wil maken, kan je dat doen met het commando git reset --soft HEAD~1. Dit commando wijst je huidige branch naar de een-na-laatste commit (HEAD~1), maar laat alle code gewoon staan (d.m.v. de --soft flag). Als je die code echt niet meer nodig hebt, kan je die dan weggooien met het commando git checkout.

Tot slot kan het ook heel goed dat de code die je terug wil draaien al op de repository van de WebCie staat. Dan kan je het niet oplossen door lokaal je commitgeschiedenis aan te passen en te pushen; dat wordt dan geweigerd. Maar je kan wél een soort anti-commit maken, die de wijzigingen uit één of meer commits ongedaan maakt. Dit kan met git revert, met als argument de hash van de commit die je ongedaan wil maken (e.g. git revert d3ad4f). Je krijgt dan gewoon een nieuwe commit er bovenop die je kan pushen. Let op: git reset is dus iets anders dan git revert!

Als er bij Git zelf iets mis gaat kan je natuurlijk altijd je lokale Git-Fu expert roepen. Voor meer details kan je ook altijd naar de documentatie van Git kijken.