Återställa specifika data med hjälp av Git-kommandon
Möjligheten att återställa data med hjälp av Git-kommandon är avgörande för att utvecklare ska kunna återställa oavsiktliga ändringar, återställa borttagna filer eller återställa förlorade incheckningar. Det bidrar till att minimera oväntad stilleståndstid och säkerställa projektkontinuitet. Men även om dess fördelar är tydliga är det viktigt att påpeka dess potentiella risker. När du använder Git-kommandot som beskrivs i den här lektionen är det viktigt att vara försiktig, särskilt när du manipulerar incheckningshistoriken eller återställer ändringar, eftersom misstag kan leda till dataförlust.
Git-dataåterställningskommandon
Git-kommandon som hanterar dataåterställning kan grupperas i flera kategorier, inklusive återställning av incheckningar, filer, specifika kodrader och borttagna incheckningar eller grenar.
Återställa incheckningar
- git-logg: visar en lista över incheckningshistoriken för en lagringsplats. Du kan navigera genom loggen för att hitta den incheckning som du vill återställa.
- git-checkout-incheckning<>: växlar till en specifik incheckning, vilket effektivt "återställer" lagringsplatsens tillstånd vid incheckningen.
- git cherry-pick <commit>: tillämpar ändringarna som introduceras av en specifik incheckning på din aktuella gren.
Återställa filer
- git-checkout-incheckningsfil<>><: återställer en specifik fil från en tidigare incheckning.
- git-återställningsfil<>: tar bort lokala ändringar och återställer filen till sitt senaste bekräftade tillstånd, förutsatt att du ännu inte har checkat in ändringarna.
Återställa specifika kodrader
- git blame-fil<>: visar revisionen och författaren av varje rad i en fil, vilket hjälper dig att identifiera incheckningen som introducerade en viss ändring.
- git show <commit>:<file>: visar innehållet i en fil vid en specifik incheckning. Du kan ange inchecknings- och filsökvägen för att se innehållet som det fanns vid den tidpunkten.
Återställa borttagna incheckningar eller grenar
- git reflog: visar en post med alla incheckningar. Du kan använda den för att hitta SHA-1-hashen för en tidigare borttagen incheckning eller gren och sedan checka ut eller återställa den.
- git fsck --lost-found: kontrollerar lagringsplatsens integritet och listar alla incheckningar som inte kan nås från någon gren eller tagg. Du kan använda detta för att återställa förlorade incheckningar.
Kom ihåg att använda dessa kommandon med försiktighet, särskilt när du manipulerar incheckningshistoriken eller återställer ändringar. Se alltid till att skapa en säkerhetskopia av lagringsplatsen innan du startar eller använder git-lagringsplatsen för att spara dina aktuella ändringar innan du försöker utföra några återställningsåtgärder.
Exempelscenario
Vi går igenom ett exempelscenario som illustrerar processen med att använda Git-kommandon för att återställa en borttagen fil. Vi antar att en fil med namnet example.txt som finns på git-lagringsplatsen har tagits bort av misstag och att du måste återställa den.
Visa incheckningshistorik:
- Börja med att visa incheckningshistoriken:
git-logg - I listan över incheckningshistorik identifierar du SHA-1-hashen för incheckningen där filen example.txt senast fanns.
Återställer den borttagna filen:
- När du har identifierat SHA-1-hashen för incheckningen använder du git-kassan för att återställa filen:
git checkout <commit_SHA>^ -- example.txt - Ersätt <commit_SHA> med SHA-1-hashen för incheckningen. Symbolen ^ anger överordnad för incheckningen, vilket effektivt återställer filen till dess tillstånd innan den tas bort.
Verifierar ändringar:
- När du har återställt filen kontrollerar du att den har återställts genom att kontrollera lagringsplatsens status:
git-status - Verifiera att example.txt visas som en ändrad eller ospårad fil.
Mellanlagring och incheckning av ändringar:
- Om filen visas som ändrad mellanlagra den för incheckning:
git add example.txt - Genomför ändringarna med ett lämpligt incheckningsmeddelande:
git commit -m "Återställd example.txt"