Hur man tar bort en Commit i Git

Att ta bort en commit i Git är något du kanske gör oftare än du förväntar dig. Med en sådan vanlig uppgift skulle du förmodligen tycka att det är praktiskt att ha en snabbguide.

Hur man tar bort en Commit i Git

Den här artikeln svarar på hur du tar bort en Git-commit och andra möjliga lösningar du kan prova. Så om du gör ett misstag i din senaste commit eller vill rensa upp din repos historia, läs vidare för att ta reda på det.

Ta bort en Commit i Git

Du kan ta bort en commit i Git på några sätt. Om du inte vill eller kan ändra Git commit-meddelandet , då är den vanligaste lösningen att använda kommandona "git reset" och "git revert".

För att använda "git reset", gör så här:

  1. Hitta commiten du vill ta bort med git log .
    Hur man tar bort en Commit i Git
  2. Använd git reset –soft [commit hash] för att ångra ett commit-kommando utan att "nuka" någonting.
    Hur man tar bort en Commit i Git
  3. Eller använd git reset –hard [commit hash] för att återställa till commit före den du vill ta bort.
    Hur man tar bort en Commit i Git
  4. Byt ut "[commit hash]" med hash för den commit du riktar in dig på.

Alternativt kan du också använda "git rebase -i HEAD~[Number]" för att rebasera det senaste antalet commits. Ersätt [number] med antalet commits. Git kommer att visa dig en fil som du kan redigera och ta bort commit som du vill ska vara borta. Gör bara detta om du inte redan har drivit en commit.

Detta är en enkel metod på ytan, men var försiktig. Den tar permanent bort alla ändringar i commits efter den du återställde den till, så se till att det är precis vad du vill ha.

Alternativt kan du använda "git revert" så här:

  1. Om du vill behålla ändringarna i din arbetskatalog, använd git revert [commit hash] . Detta kommando skapar en ny commit som ångrar ändringarna från commit du anger.
    Hur man tar bort en Commit i Git
  2. När du har återställt, tryck ändringarna till fjärrförvaret med git push .
    Hur man tar bort en Commit i Git

Här är ett annat alternativ, om du vill ta bort flera, specifika commits:

  1. Använd git checkout [last commit hash] för att kontrollera den sista commit som ska stanna.
    Hur man tar bort en Commit i Git
  2. Gör en ny gren med git checkout -b repair .
    Hur man tar bort en Commit i Git
  3. Kör git cherry-pick [specifik commit-hash] på den första commit du vill bevara.
    Hur man tar bort en Commit i Git
  4. Upprepa för de andra commits du vill bevara.
  5. Kör git checkout master till checkout master.
    Hur man tar bort en Commit i Git
  6. Återställ master till den senaste användbara commit med git reset –hard [last commit hash] .
    Hur man tar bort en Commit i Git
  7. Slå samman den nya grenen för att bemästra med git merge repair .
    Hur man tar bort en Commit i Git
  8. Kör sedan git push -f origin master för att trycka till fjärrkontrollen.
    Hur man tar bort en Commit i Git

När ska du ta bort bekräftelser

Det finns några situationer när det är bäst att ta bort en commit. Här är några av dem.

Dålig kod

En av de vanligaste anledningarna till att du vill bli av med en commit är för att koden i den helt enkelt inte klipper den. Kanske har du gjort ett misstag och vill börja om, eller kanske har du insett att resultatet inte stämmer överens med det du försöker uppnå. Du kan till exempel ha lagt till en funktion som är i konflikt med en annan del av din kod. Om du tar bort den här commit kan du gå tillbaka, åtgärda problemet och sedan befästa den korrigerade versionen igen.

Om du precis har begått en bit kod och sedan upptäckt ett uppenbart fel, till exempel en bugg eller en kodbit som inte borde ha varit där, men du inte har tid att fixa det – det är en bra anledning för att ta bort commit. Istället för att låta denna onödiga eller felaktiga kodbit sitta i ditt projekts historia (och potentiellt orsaka förvirring eller till och med katastrofala fel i buggfixning), kan du ta bort den commit. Att göra det håller ditt projekt rent.

Känslig data

Att oavsiktligt begå känslig data händer oftare än du kanske tror. Föga överraskande kan det vara en avsevärd säkerhetsrisk att göra det, oavsett om det är personligt eller företag. Allt från lösenord och API-nycklar till personlig information kan smygt hamna i din commit. Och när det väl finns där ute i projektutrymmet kan vem som helst komma åt det och eventuellt bryta mot din eller ditt teams säkerhet.

Dessa olyckor är kanske till och med bättre skäl att ta bort en commit än bara dålig kod. Du kan redigera felaktig kod och inte oroa dig för att den ska stanna i projekthistoriken, men det här är inte en risk du vill ta med känsliga data. Till exempel, om du av misstag commit en fil som innehåller API-nycklar, tar bort denna commit förhindrar denna nyckel från att hamna i fel händer.

Att hålla historien ren

En annan solid anledning att ta bort en Git-commit är att hålla din projekthistorik ren och enkel. När du arbetar med projektet blir din engagemangshistorik allt mer belamrad med mindre uppdateringar, experiment eller ändringar som inte längre är relevanta. När du vill titta igenom historien av någon anledning, som att ta reda på varför du gjorde en viss förändring eller återgå till ett stabilt tillstånd efter ett experiment, kan en rörig historia bli ett problem.

Genom att radera onödiga commits håller du din projekthistorik snygg och enkel för dig och andra i ditt team att följa. Det är ännu mer användbart innan du slår ihop en filial så att du kan presentera en tydlig, kortfattad och relevant historik för den som granskar din kod. Till exempel, om du har flera commits som bara var mindre justeringar av en funktion, kanske du vill slå ihop dem till en enda commit för att hålla din historik snygg.

Bästa metoder och tips

Innan du tar bort en commit, följ några bästa praxis för att hålla ditt projekt funktionellt och undvika oavsiktliga konsekvenser.

Säkerhetskopiera ditt arbete

Innan du tar bort någon commit i Git är det en bra idé att säkerhetskopiera ditt arbete, även om du tror att det kan vara värdelöst att behålla. Det kan tyckas vara extra jobb, men en backup är ett skyddsnät ifall det inte går som planerat.

Du kan skapa en säkerhetskopia genom att skapa en ny gren som speglar ditt förvars nuvarande tillstånd. Till exempel, innan du tar bort en commit som introducerade en ny funktion, skapa en backup-gren "funktionssäkerhetskopiering." Det ger dig friheten att experimentera och ta bort commits utan rädsla för att förlora viktigt arbete. Så om du senare inser att du behöver något från den raderade commit, har du inte förlorat det för gott. Om du bestämmer dig för att du inte längre behöver den säkerhetskopian kan du ta bort Git-grenen .

Ta inte bort offentliga åtaganden

När du arbetar med offentliga arkiv, särskilt i projekt med öppen källkod eller teammiljöer, bör du vara extra försiktig med att ta bort commits. När en commit väl har skjutits till ett offentligt arkiv och andra har hämtat den, kan borttagning av commit förvirra eller distrahera alla inblandade och störa arbetet. Det är en form av att dra ut en matta under någon – inte en trevlig upplevelse, utan snarare hänsynslös. Om du måste ta bort en commit som redan är offentlig, berätta för ditt team eller projektbidragsgivare i förväg så att de vet vad som händer. På så sätt är alla medvetna och kan anpassa sitt arbete därefter.

Använd Revert för Public Repos

Om du fortfarande vill ångra ändringar i ett offentligt arkiv, istället för att ta bort en commit permanent, kan du återställa en sammanslagning i Git . Till skillnad från git reset, som effektivt skriver om historien, skapar "git revert" en ny commit som ångrar ändringarna som gjorts i en tidigare commit.

Därför är det mycket säkrare och mer transparent att använda det här kommandot, särskilt när du arbetar med andra. Du kommunicerar öppet till dina teammedlemmar att du kan ha gjort ett misstag och ger tillbaka ett åtagande som fixar det. Om du pushade en commit med en betydande bugg, låter "git revert" dig snabbt förneka effekterna av den buggen samtidigt som projektets historia behålls intakt. Genom att göra det bibehålls projekthistorikens integritet och allas lokala arkiv hålls konsekventa med fjärrkontrollen.

Dubbelkolla innan du tar bort

En av de största riskerna när du tar bort commits i Git är att förlora tiden och ansträngningen du lägger ner på commit. För att förhindra detta, granska alla ändringar i varje commit du vill ta bort. Använd "git log or git show [commit hash]" för att inspektera commits. Om du tar bort en commit som lagt till flera funktioner till din kod, se till att ditt projekt inte behöver dessa funktioner för att fungera eller att de replikeras någon annanstans.

Förbinder sig till det

Det finns många anledningar till att ta bort en commit på Git, som att hålla din historik snygg, ångra förvirrande misstag eller att skydda din känsliga information från nyfikna ögon. Oavsett anledning, kom ihåg att det finns två sätt att göra det – "git reset" och "git revert", var och en har olika syften, så välj det som är rätt för ditt projekt. Du kan också byta namn på Git-grenen för ytterligare klarhet.

Har du någonsin behövt ta bort en commit i Git? Vad var din erfarenhet och har du några tips att dela med dig av? Lämna en kommentar nedan och fortsätt konversationen.


Leave a Comment

Så här zoomar du möte: Ställ in, gå med, värd, schemalägg, använd virtuell bakgrund och mer

Så här zoomar du möte: Ställ in, gå med, värd, schemalägg, använd virtuell bakgrund och mer

Upptäck hur du enkelt ställer in, går med i och värdar Zoom-möten. Läs våra tips för att använda Zoom samt dess funktioner för att säkerställa effektiva och säkra möten.

Hur man spelar in och redigerar Microsoft Teams Meeting

Hur man spelar in och redigerar Microsoft Teams Meeting

Vill du spela in Microsofts teams möte? Läs inlägget för att lära dig hur du spelar in det med och utan Microsoft 365 Enterprise-konto.

Hur du gör din profil privat på Facebook

Hur du gör din profil privat på Facebook

Vill du hålla din Facebook-profil privat? Lär dig hur du kan skydda din integritet med dessa steg.

Hur man skriver spanska n med Tilde (ñ) på tangentbordet

Hur man skriver spanska n med Tilde (ñ) på tangentbordet

Lär dig att skriva spanska n med Tilde (ñ) på tangentbordet. Den här artikeln ger dig kortkommandon och metoder för både Windows och Mac.

Hur du lägger till och använder dina egna bilder som bakgrund i Microsoft Teams-möten

Hur du lägger till och använder dina egna bilder som bakgrund i Microsoft Teams-möten

Upptäck hur du lägger till och använder dina egna anpassade bakgrunder i Microsoft Teams-möten för att skapa en mer personlig och professionell atmosfär.

Hur man får ut så mycket som möjligt av Microsoft Rewards och tjänar lätta pengar

Hur man får ut så mycket som möjligt av Microsoft Rewards och tjänar lätta pengar

Så här kan du få ut det mesta av Microsoft Rewards i Windows, Xbox, Mobile, shopping och mycket mer.

Hur man använder Google Maps för att mäta avstånd

Hur man använder Google Maps för att mäta avstånd

Med Google Maps kan du mäta avståndet mellan två punkter. Lär dig att använda verktyget effektivt på olika enheter.

Ta reda på hur du gör försättssidor i Google Dokument [Enkla steg]

Ta reda på hur du gör försättssidor i Google Dokument [Enkla steg]

Skapa professionella försättssidor i Google Dokument genom att använda förbyggda mallar eller skapa dem från grunden. Följ vår detaljerade steg-för-steg-guide för att optimera dina dokument.

Hur man inaktiverar Copilot på Windows 11?

Hur man inaktiverar Copilot på Windows 11?

Den här bloggen kommer att hjälpa läsare att inaktivera Copilot-funktionen på Windows om de inte vill använda AI-modellen.

Hur man kopplar JBL-hörlurar med en dator, mobil enhet eller surfplatta

Hur man kopplar JBL-hörlurar med en dator, mobil enhet eller surfplatta

Lär dig hur du kopplar JBL-hörlurar med din dator, mobil enhet eller surfplatta på ett enkelt sätt. Få tips för att förbättra din anslutning och upplevelse.