Git

Hoe keer ik terug naar een eerdere commit in Git?

Hoe keer ik terug naar een eerdere commit in Git?
De opdracht "git revert" voert een verbazingwekkend nuttige bewerking uit binnen de Git-omgeving. Soms wil je de wijzigingen die je eenmaal hebt vastgelegd ongedaan maken zonder die wijzigingen daadwerkelijk uit het "git log" te verwijderen, zodat je ze in de toekomst altijd opnieuw kunt doen wanneer je maar wilt. Met de opdracht "git revert" kunt u dit precies doen. Het betekent dat je gemakkelijk het effect van een eerdere commit kunt annuleren of annuleren zonder het daadwerkelijk uit je Git-geschiedenis te verwijderen. Daarom is dit artikel bedoeld om je de methode te leren om terug te keren naar een eerdere commit in Git in Ubuntu 20.04.

Methode om terug te keren naar een eerdere commit in Git in Ubuntu 20.04:

Om je de methode uit te leggen om terug te keren naar een eerdere commit in Git in Ubuntu 20.04, we hebben een voorbeeldscenario ontworpen. In dit scenario zullen we eerst een reeds bestaand bestand met de naam abc . wijzigen.tekst. We hebben ook twee andere bestanden in onze testprojectrepository met de naam Stash1.txt en Stash2.txt die we niet eerder hadden gepleegd. Dus we zullen al deze wijzigingen in één keer doorvoeren. Dan zullen we proberen terug te keren naar een vorige staat i.e. een staat waarin noch de bestanden Stash1.txt en Stash2.txt bestond noch het bestand abc.txt is gewijzigd. Om dit scenario verder uit te werken, willen we u graag door de volgende stappen leiden:

Stap #1: Schakel over naar uw Git Project Directory:

Eerst gaan we naar de map waar onze Git-projectrepository zich bevindt op de hieronder getoonde manier:

cd /home/kbuzdar/simplegit-progit

Zodra deze opdracht wordt uitgevoerd, wordt het standaardpad van uw terminal gewijzigd, zoals weergegeven in de volgende afbeelding:

Stap #2: Maak een lijst van de inhoud van uw Git Project Directory:

Nu zullen we de inhoud van onze testprojectrepository opsommen om te zien welke bestanden er al zijn. De inhoud van onze Git-projectrepository kan worden weergegeven met behulp van de onderstaande opdracht:

ls

De inhoud van onze Git-projectrepository wordt getoond in de volgende afbeelding:

Stap # 3: Open en wijzig elk bestand in uw Git Project Directory:

We hebben het bestand abc . gekozen.txt uit onze Git-projectrepository voor wijziging. Nu zullen we dit bestand openen met de nano-editor op de hieronder getoonde manier:

sudo nano abc.tekst

In dit bestand is willekeurige tekst geschreven, zoals weergegeven in de volgende afbeelding:

We zullen deze tekst aanpassen door er een "niet" aan toe te voegen, zoals weergegeven in de onderstaande afbeelding. Nadat we deze wijziging hebben aangebracht, verlaten we de nano-editor terwijl we ons bestand abc . opslaan.tekst.

Stap #4: Initialiseer uw Git Project Repository opnieuw:

Nadat we alle gewenste wijzigingen hebben aangebracht, moeten we onze Git-projectrepository opnieuw initialiseren met behulp van de volgende opdracht:

git init

Na het uitvoeren van deze opdracht, zal Git opnieuw initialiseren terwijl het bericht in de onderstaande afbeelding op je terminal wordt weergegeven:

Stap # 5: Voeg de wijzigingen toe aan uw Git Project Repository:

Nu moeten we de wijzigingen aan onze Git-projectrepository toevoegen door de volgende opdracht uit te voeren:

git add.

De succesvolle uitvoering van deze opdracht zal niets weergeven op onze Ubuntu 20.04-terminal.

Stap # 6: Voer de nieuw gemaakte wijzigingen door in uw Git Project Repository:

Nadat we de wijzigingen aan onze Git-projectrepository hebben toegevoegd, zullen we deze wijzigingen vastleggen met de volgende opdracht:

git commit -m "Bericht dat moet worden weergegeven"

Hier kunt u "Bericht dat moet worden weergegeven" wijzigen met het daadwerkelijke bericht dat u wilt weergeven terwijl dit commando wordt uitgevoerd.

Wanneer deze opdracht wordt uitgevoerd, zult u merken dat onze twee bestanden die eerder niet zijn vastgelegd, i.e. Stash1.txt en Stash2.txt zal worden vastgelegd.

Stap #7: Controleer Git Commit Geschiedenis:

Nu zullen we de Git commit-geschiedenis controleren om te zien of onze laatste commit is gelogd of niet. De Git commit-geschiedenis kan worden gecontroleerd met het volgende commando:

git log --pretty=oneline

Aan de Git commit-geschiedenis die in de onderstaande afbeelding wordt getoond, kun je gemakkelijk zien dat de Head naar onze laatste commit wijst.e. de transactie waarin we de bestanden hebben vastgelegd Stash1.txt, Stash2.txt en abc.txt (na wijziging). We zullen ook de transactie-ID van deze vastlegging uit de vastleggingsgeschiedenis noteren, zodat we deze in de volgende stap kunnen terugdraaien terwijl we deze ID gebruiken.

Stap #8: Voer de "git revert" bewerking uit:

De eerste vijf tekens van de transactie-ID van onze laatste transactie zijn 220ac. Deze karakters zullen gebruikt worden om naar deze commit te verwijzen. Nu zullen we deze commit terugdraaien met behulp van het volgende commando:

git revert 220ac

Wanneer deze opdracht wordt uitgevoerd, wordt een bericht weergegeven in nano-editor dat uw transactie met de transactie-ID 220ac wordt teruggedraaid, zoals weergegeven in de onderstaande afbeelding:

U moet op Ctrl + X drukken nadat u dit bericht hebt gezien, zodat u de exacte status op uw terminal kunt zien, zoals weergegeven in de volgende afbeelding. Deze status geeft aan dat de eerder aangebrachte wijzigingen i.e. de wijziging van abc.txt en de toevoeging van Stash1.txt en Stash2.txt zijn teruggezet. Het betekent ook dat nu ons bestand abc.txt zal terug zijn in de vorige staat i.e. het vertegenwoordigt de originele inhoud zonder wijziging. Bovendien zijn de bestanden Stash1.txt en Stash2.txt zal zijn verwijderd.

Stap #9: Controleer nogmaals de Git Commit History:

Nu zullen we onze Git commit-geschiedenis nogmaals controleren om de huidige situatie te zien. Als de terugdraaibewerking met succes is uitgevoerd, wijst het hoofd van ons project naar deze terugdraaitransactie, zoals gemarkeerd in de onderstaande afbeelding:

Stap #10: Controleer of het “git revert”-commando succesvol heeft gewerkt of niet:

Hoewel we al hebben gezien dat ons projecthoofd momenteel naar de revert-transactie verwijst, wat voldoende is om aan te geven dat het "git revert" -commando goed heeft gefunctioneerd. We kunnen het echter nog steeds garanderen door de Git-status te controleren. Hier zullen we kunnen zien dat er geen bestanden meer zullen worden vastgelegd zoals de bestanden die er eerder waren i.e. Stash1 en Stash2 zijn al verwijderd door de terugzetbewerking. Daarom zullen er geen nieuwe bestanden meer moeten worden vastgelegd, zoals weergegeven in de volgende afbeelding:

We kunnen ook proberen de inhoud van onze Git-projectrepository op te sommen om de verwijdering van de bestanden Stash1 te bevestigen.txt en Stash2.txt zoals weergegeven in de onderstaande afbeelding. Een punt dat hier moet worden opgemerkt, is dat de bestanden Stash1.txt en Stash2.txt zijn verwijderd door onze terugzetbewerking, alleen omdat deze twee bestanden niet bestonden voordat de transactie werd uitgevoerd met de transactie-ID 220ac. Dat is de reden waarom, als gevolg van het terugdraaien van deze commit, deze bestanden niet meer zullen bestaan. Als u de terugdraaibewerking echter nogmaals uitvoert op deze terugboektransactie i.e. u probeert het effect van de zojuist uitgevoerde terugzetbewerking teniet te doen, waarna u deze twee bestanden weer kunt zien.

Ten slotte kunnen we ook ons ​​bestand abc . controleren.txt nogmaals om te zien of het terug is met de originele inhoud of niet. We zullen dit bestand gewoon opnieuw openen met de nano-editor en je zult aan de volgende afbeelding zien dat de wijziging die we eerder aan dit bestand hebben gedaan, is teruggedraaid.

Conclusie:

Door het gedetailleerde scenario te doorlopen dat u in dit artikel wordt gepresenteerd, kunt u hopelijk de opdracht "git revert" in Ubuntu 20 gebruiken.04 op een zeer effectieve manier. Deze opdracht annuleert het effect van elke eerdere transactie terwijl de invoer in het "git log" behouden blijft, zodat u op elk moment gemakkelijk terug kunt gaan naar die transactie. Met andere woorden, we kunnen zeggen dat het "git revert" commando een transactie begaat die een exacte inverse is van een commando dat eerder is vastgelegd (zonder de vorige commit te verwijderen). Dat is precies waarom het zijn effect weet teniet te doen.

Beste gamepad-toewijzingsapps voor Linux
Als je graag games op Linux speelt met een gamepad in plaats van een typisch toetsenbord- en muisinvoersysteem, zijn er enkele handige apps voor jou. ...
Handige hulpmiddelen voor Linux-gamers
Als je graag games op Linux speelt, is de kans groot dat je apps en hulpprogramma's zoals Wine, Lutris en OBS Studio hebt gebruikt om de game-ervaring...
HD Remastered Games voor Linux die nog nooit eerder een Linux-release hebben gehad
Veel game-ontwikkelaars en uitgevers komen met HD-remaster van oude games om de levensduur van franchise te verlengen, fans die compatibiliteit met mo...