Git Revert vs Git Reset: Ångra och justera ändringar i Git History

Git Revert och Git Reset är två viktiga kommandon i Git för att ångra och justera ändringar i commit historien för ett arkiv. Här är en guide om hur du använder Git Revert och Git Reset:

 

Git Revert

  • Git Revert låter dig skapa en ny commit för att ångra() revert tidigare commitade ändringar.

  • Till revert en commit, använd följande kommando:

    git revert <commit_id>
    

    Ersätt <commit_id> med ID för den commit du vill återställa. En ny commit kommer att skapas som ångrar ändringarna i den valda commit.

  • Revert ändrar inte commit historiken utan skapar en ny commit för att återställa ändringarna.

 

Git Reset

  • Git Reset låter dig gå tillbaka till ett tidigare tillstånd genom att flytta den HEAD aktuella grenen till en specifik commit.

  • Git Reset har tre olika lägen: --soft, --mixed(default), and --hard.

  • Använd följande kommando till och reset aktuell HEAD gren till en: commit

    git reset --mode <commit_id>
    

    Ersätt <commit_id> med ID:t för det commit du vill återställa till.

  • Git Reset lägen:

    • -soft: Flyttar den HEAD aktuella grenen till den angivna commit, och behåller ändringarna från föregående commit i mellanrummet. Använd kommandot git reset --soft <commit_id>.
    • --mixed: Detta är standardläget. Flyttar grenen HEAD och den aktuella grenen till den angivna commit och tar bort ändringarna av den föregående commit från mellanställningsområdet. Använd kommandot git reset --mixed <commit_id>.
    • --hard: Flyttar den HEAD aktuella grenen till den angivna commit och kasserar alla ändringar av föregående commit. Var försiktig när du använder den, eftersom alla oengagerade ändringar kommer att gå förlorade. Använd kommandot git reset --hard <commit_id>.
    <commit_id>.
  • Git Reset ändrar commit historiken och kan resultera i dataförlust, så använd den med försiktighet.

 

Git Revert och Git Reset är kraftfulla verktyg för att ångra och justera commit-historiken i Git. Använd dem försiktigt för att säkerställa projektstabilitet och undvika dataförlust.