Git

Hoe de laatste toezegging in Git . ongedaan te maken

Hoe de laatste toezegging in Git . ongedaan te maken
Een veelgebruikte workflow in Git is dat je wijzigingen aanbrengt in je project, de wijzigingen aan het staging-gebied toevoegt, de wijzigingen vastlegt, nieuwe wijzigingen aanbrengt, de wijzigingen stageert, de wijzigingen vastlegt, en het gaat maar door en door. Maar wat als je per ongeluk je wijzigingen hebt doorgevoerd?? Nou, wees niet bang. Je kunt je laatste commit altijd ongedaan maken in Git. In dit artikel laat ik je zien hoe je de laatste commit in Git . ongedaan kunt maken. Dus laten we beginnen.

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

OPMERKING: 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-fix

De 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.

Hoe de muisaanwijzer en cursorgrootte, kleur en schema op Windows 10 te veranderen
De muisaanwijzer en cursor in Windows 10 zijn zeer belangrijke aspecten van het besturingssysteem. Dit geldt ook voor andere besturingssystemen, dus i...
Gratis en open source game-engines voor het ontwikkelen van Linux-games
Dit artikel behandelt een lijst met gratis en open source game-engines die kunnen worden gebruikt voor het ontwikkelen van 2D- en 3D-games op Linux. E...
Shadow of the Tomb Raider voor Linux-zelfstudie
Shadow of the Tomb Raider is de twaalfde toevoeging aan de Tomb Raider-serie - een actie-avonturengame-franchise gemaakt door Eidos Montreal. De game ...