Heb je fouten ondervonden of problemen gehad met Git-commits tijdens het werken met Git? Misschien is er per ongeluk een geheime of gevoelige gegevens opgeslagen. Gelukkig kun je je bestanden verwerken met Git en ze uit de commit halen en de geschiedenis corrigeren.
Als je meerdere commits hebt gemaakt of een repository hebt gekloond met al bestaande commitgeschiedenis, wil je meestal terugkijken en zien welke commits zijn gemaakt. In deze tutorial leer je hoe je een invoer uit je Git-geschiedenis kunt verwijderen.
Lees verder en red de dag met Git!
Vereisten
Deze tutorial bestaat uit stapsgewijze instructies. Zorg ervoor dat je het volgende hebt:
- A local machine to test the Git commands – This tutorial uses Windows 10, but later versions will also work.
- Git Bash – Deze tutorial maakt gebruik van Git Bash 2.36.
Een bestand verwijderen uit Git Commit
Als je in een team aan Git werkt, maak je dagelijks honderden commits. Hierdoor is de kans groot dat je een bepaalde commit moet terugdraaien, bijvoorbeeld vanwege een onjuist bestand of meerdere bestanden. Deze behoefte wordt meestal veroorzaakt door een wijziging in code of configuratie en wordt een probleem.
Om dit probleem op te lossen, moet je het bestand of meerdere bestanden uit de Git-commit verwijderen door Git-commando’s uit te voeren. Je zult een van de populaire tools gebruiken om een enkel bestand uit de Git-commit te verwijderen, namelijk de Git Bash-tool.
1. Open de Git Bash-tool op je Windows-machine.
2. Voer vervolgens onderstaand commando uit om een repository-map aan te maken en naar die map te schakelen. Deze commando’s geven geen uitvoer op de terminal. Zorg er echter voor dat je ~/Desktop/Repository/repo1 vervangt door je gewenste map en naam.
3. Voer de volgende commando’s uit om je repository te initialiseren en twee tekstbestanden met de naam test1.txt en test2.txt aan te maken.

4. Voer nu het onderstaande commando uit om de status van de Git-commit te controleren.
Nadat je het commando hebt uitgevoerd, zul je merken dat de commits niet bijgehouden worden en nog niet zijn uitgevoerd, zoals hieronder weergegeven.

5. Voer het git add-commando hieronder uit om de twee tekstbestanden die je hebt aangemaakt in stap drie (test_file1.txt en test_file2.txt) toe te voegen aan je lokale repository.
Dit commando geeft geen uitvoer maar voegt de bestanden toe zonder ze naar de externe repository te pushen.
6. Voer vervolgens het git commit-commando hieronder uit zodat Git de voortgang en wijzigingen die je hebt aangebracht in de lokale repository bijhoudt.

7. Na het committen, voer de onderstaande opdracht uit om een specifiek bestand (test_file2.txt) uit de Git-commit te verwijderen.

8. Voer tot slot de git status-opdracht hieronder opnieuw uit om de status van het repository te verifiëren.
Zoals je hieronder kunt zien, is het bestand verwijderd uit het staging-gebied (de Git-commit) en wordt het bestand (test_file2.txt) weergegeven onder Untracked files.

Alle recentelijk geüploade bestanden verwijderen
Je hebt zojuist geleerd hoe je een specifiek bestand uit de Git-commit kunt verwijderen. Maar meestal moet je meerdere bestanden verwijderen, en Git is hiervoor geschikt met de git reset-opdracht. De git reset-opdracht is een complex, maar tegelijkertijd veelzijdig hulpmiddel om wijzigingen in het repository ongedaan te maken.
Om te zien hoe de git reset werkt, commit je een paar bestanden en reset je vervolgens de wijzigingen om recentelijk geüploade bestanden uit de Git-commit te verwijderen:
1. Maak twee nieuwe tekstbestanden met de naam test_file3.txt en test_file4.txt in de map ~/Desktop/Repository/repo1.
2. Voer vervolgens de git add-opdracht hieronder uit, die geen output geeft maar de nieuwe tekstbestanden toevoegt aan je lokale repository (~/Desktop/Repository/repo1).
3. Voer de git commit-opdracht hieronder uit om de bestanden te committen, zodat Git de voortgang en wijzigingen die je in het repository hebt aangebracht, bijhoudt.

4. Voer nu het onderstaande commando uit om de status van uw lokale repository te controleren.
Zoals u hieronder kunt zien, toont de uitvoer het bericht “nothing to commit”, wat aangeeft dat alles in orde is in de repository.

5. Voer vervolgens het git reset-commando hieronder uit om de recent gemaakte commits in stap drie terug te draaien. Dit commando geeft geen uitvoer, maar verwijdert de bestanden test_file3.txt en test_file4.txt.
U kunt ook git reset –soft HEAD^ gebruiken om alle bestanden te verwijderen die tot nu toe zijn geüpload.
6. Voer vervolgens het git status-commando hieronder opnieuw uit om de status van de repository te controleren.
Hieronder toont de uitvoer bestanden test_file3.txt en test_file4.txt die moeten worden geüpload. Deze uitvoer geeft aan welke bestanden moeten worden verwijderd uit de Git-commit.

Specifieke commits verwijderen uit Git-geschiedenis
Het verwijderen van alle geüploade bestanden werkt goed als u wilt beginnen met een schone lei. Maar wat als u slechts één bepaalde commit wilt verwijderen? Het git revert-commando doet het werk zolang u de ID van de commit kent.
In de laatste stap van de sectie “Alle recentelijk geüploade bestanden verwijderen” merkte u op dat de commits niet waren geüpload maar gewijzigd. U zult nu de wijzigingen uploaden om het git revert
-commando in actie te zien.
Voer het git commit
-commando hieronder uit om de recente wijzigingen in uw lokale repository te uploaden.
Na het uitvoeren van het commando zul je merken dat beide tekstbestanden opnieuw zijn toegevoegd en het commit-ID is 0315b85, zoals hieronder getoond.

Voer nu het git revert
-commando hieronder uit om de commit ongedaan te maken die je in de vorige stap hebt gedaan. Zorg ervoor dat je 0315b85
vervangt door het ID van je commit.
Hieronder zie je dat twee bestanden die je onlangs hebt toegevoegd, zijn verwijderd.

Een Map Verwijderen uit de Git Commit-geschiedenis
Tegenwoordig weet je al hoe je een toegevoegd bestand kunt verwijderen, maar hoe zit het met een map? Een map verwijderen uit een Git-commit is vergelijkbaar met het verwijderen van bestanden.
1. Voer de onderstaande commando’s uit, die geen uitvoer geven maar wel het volgende uitvoeren:
- Maak een map met de naam
myfolder
aan in je lokale repository (~/Desktop/Repository/repo1).
- Maak een bestand met de naam l.txt aan in de map ~/Desktop/Repository/repo1/myfolder.
2. Voer vervolgens de git-commando’s hieronder uit om de nieuwe map (~/Desktop/Repository/repo1/myfolder) aan je lokale repository toe te voegen.

3. Voer het volgende git rm-commando uit om de map (myfolder) te verwijderen die je in stap twee hebt toegevoegd.

4. Voer tot slot het git status-commando uit om de status van de repository te verifiëren en te zien of de map is verwijderd.
Hieronder zie je dat de hele map (myfolder) succesvol is verwijderd, samen met het bestand l.txt erin.

Conclusie
In deze tutorial heb je geleerd om te werken met Git-commits, zoals het verwijderen van een specifieke commit, een bestand of meerdere bestanden. Je hebt ook besproken hoe je een hele map binnen het lokale repository kunt verwijderen en de wijzigingen kunt committen.
Op dit punt kun je met vertrouwen wijzigingen committen op je repository en commits verwijderen die je onnodig vindt zonder problemen te veroorzaken.
Met wat je hebt geleerd in deze tutorial, welke methode denk je dat uitstekend zou zijn om met commits te werken voor jouw team?
Source:
https://adamtheautomator.com/git-and-remove-from-commit/