Een commit wijzigen die niet de vorige commit was

Vaak heb ik een workflow zoals de volgende:

  1. Wijzigingen doorvoeren in een groep bestanden
  2. Wijzigingen doorvoeren in een andere groep bestanden
  3. Besef dat ik enkele wijzigingen heb gemist die in de eerste commit thuishoren
  4. Vloek

Ik kan git commit --amendniet gebruiken omdat het niet de meest recente commit is die ik moet wijzigen. Wat is de beste manier om wijzigingen aan de eerste commit toe te voegen zonder de tweede aan te raken?


Antwoord 1, autoriteit 100%

Je kunt git rebasegebruiken om dit op te lossen. Voer git rebase -i sha1~1uit waarbij sha1 de commit-hash is van degene die je wilt wijzigen. Zoek de commit die je wilt wijzigen en vervang “pick” door “edit” zoals beschreven in de opmerkingen van de rebase-editor. Als je vanaf daar verder gaat, kun je die commit bewerken.

Merk op dat dit zowel de sha1 van die commit als alle kinderen zal veranderen — met andere woorden, dit herschrijft de geschiedenis vanaf dat moment. Je kunt repositories breken door dit te doen, maar als je niet hebt gepusht, is dat niet zo erg.

Other episodes