Een test Git-repository instellen:
In deze sectie ga ik een van mijn GitHub-repository's op mijn computer klonen om een testrepository voor dit artikel in te stellen. Als je mee wilt doen, mag dat ook. Als je je eigen Git-repository hebt om mee te werken, prima! Je kunt het ook gebruiken.
Om een van mijn GitHub-repository's te klonen (https://github.com/dev-shovon/my-project), voer de volgende opdracht uit:
$ git kloon https://github.com/dev-shovon/mijn-project undo_commit_demo
De GitHub-repository moet worden gekloond in undo_commit_demo/ map.
Navigeer nu naar de undo_commit_demo/ map als volgt:
De commit die je ongedaan wilt maken kan zich in een andere branch bevinden dan de mijne. Ik wil de laatste commit van de . ongedaan maken ie-fix Afdeling. Dus ik moet aan de tak trekken ie-fix uit mijn GitHub-repository.
Je kunt de ie-fix branch van GitHub als volgt:
$ git pull oorsprong ie-fixOPMERKING: Hier, ie-fix is de naam van de tak?.
De ie-fix tak moet worden getrokken.
Nu afrekenen in het filiaal (in mijn geval, ie-fix) waarvan je de laatste commit als volgt ongedaan wilt maken:
$ git checkout ie-fix
Zoals je kunt zien, is de laatste commit van de ie-fix tak is aec00f3. In de volgende secties ga ik je manieren laten zien om de laatste commit op je Git-repository ongedaan te maken.
Laatste vastlegging ongedaan maken en wijzigingen behouden:
Een manier om de laatste commit ongedaan te maken, is door een zachte reset te gebruiken op je Git-repository. Wat dit doet, is dat de laatste commit wordt verwijderd en de wijzigingen die je in die commit hebt gemaakt, worden toegevoegd aan het staging-gebied van je Git-repository. Op deze manier, als je iets wilt repareren, kun je de bestanden wijzigen en een nieuwe commit toevoegen.
Zoals je kunt zien, de laatste commit in mijn ie-fix tak is aec00f3.
$ git log --oneline
Ook is mijn verzamelplaats schoon.
$ git-status
Voer nu de volgende opdracht uit om de laatste commit te verwijderen of ongedaan te maken:
$ git reset --soft HEAD~1
Zoals je kunt zien, de commit aec00f3 is weg.
$ git log --oneline
Het bestand dat ik in de laatste commit heb gewijzigd, bevindt zich ook in mijn staging-gebied.
$ git-status
Nu kunt u de bestanden verder wijzigen, de gemaakte fouten herstellen en de wijzigingen opnieuw vastleggen.
Laatste vastlegging ongedaan maken en wijzigingen verwijderen:
Als de laatste commit die je wilt verwijderen nutteloos voor je is, dan kun je overwegen een harde reset uit te voeren op je Git-repository. Wat harde reset doet is, het verwijdert de laatste commit zoals voorheen. Maar het verwijdert ook alle wijzigingen die je in de laatste commit hebt gemaakt. Voer alleen een harde reset uit als je zeker weet dat je niets meer nodig hebt van de laatste commit.
ik ga de trekken ie-fix branch opnieuw uit mijn GitHub-repository om de laatste commit te herstellen aec00f3 en verwijder het opnieuw in deze sectie.
$ git pull oorsprong ie-fix
Zoals je kunt zien, is de laatste commit terug. Als je Git-repository is geüpload naar een Git-cloudservice zoals GitHub, dan kun je elke commit die je per ongeluk verwijdert ook herstellen.
Zoals je kunt zien, is mijn verzamelplaats schoon.
$ git-status
Om nu de laatste commit te verwijderen en de wijzigingen in die commit te verwijderen, voer je de volgende opdracht uit:
$ git reset --hard HEAD~1
De laatste commit moet worden verwijderd en de HOOFD aanwijzer moet worden bijgewerkt.
Zoals je kunt zien, is de commit aec00f3 wordt verwijderd en de commit direct daarvoor (3ffdee) is de huidige de laatste commit.
$ git log --oneline
De verzamelplaats is ook schoon. Er bestaan dus wijzigingenbestanden van de verwijderde commit.
$ git-status
Externe Git-repository bijwerken:
Nu je de defecte commit met succes uit je Git-repository hebt verwijderd, wil je misschien ook je GitHub-repository bijwerken. Dit is het onderwerp van deze sectie.
Zoals je kunt zien, git-status laat ook zien dat ik 1 commit achter ben van de externe repository.
Voordat ik mijn GitHub-repository bijwerkte, was de commit aec00f3 bestaat, ook al heb ik het verwijderd uit de lokale Git-repository zoals je kunt zien.
Voer de volgende opdracht uit om de lokale Git-repository te synchroniseren met de GitHub-repository:
$ git push --force origin ie-fixDe wijzigingen van de lokale Git-repository moeten worden gesynchroniseerd met de GitHub-repository.
De GitHub-repository moet worden bijgewerkt. Zoals je kunt zien, de commit aec00f3 wordt niet meer vermeld. De commit direct ervoor aec00f3, wat is? 3ffdee is nu de laatste commit.
Dus zo maak je de laatste commit in Git . ongedaan. Bedankt voor het lezen van dit artikel.