Git Revert vs Git Reset: Angre og justere endringer i Git-historikk

Git Revert og Git Reset er to viktige kommandoer i Git for å angre og justere endringer i commit historien til et depot. Her er en veiledning for hvordan du bruker Git Revert og Git Reset:

 

Git Revert

  • Git Revert lar deg opprette en ny forpliktelse for å angre( revert) tidligere forpliktede endringer.

  • Til revert en commit, bruk følgende kommando:

    git revert <commit_id>
    

    Erstatt <commit_id> med ID-en til den commit du vil tilbakestille. En ny commit vil bli opprettet, og angre endringene i den valgte commit.

  • Revert endrer ikke commit historien, men oppretter en ny commit for å tilbakestille endringene.

 

Git Reset

  • Git Reset lar deg gå tilbake til en tidligere tilstand ved å flytte HEAD og gjeldende gren til en spesifikk commit.

  • Git Reset har tre forskjellige moduser: --soft, --mixed(default), and --hard.

  • Til reset og HEAD gjeldende gren til en commit, bruk følgende kommando:

    git reset --mode <commit_id>
    

    Erstatt <commit_id> med ID-en til den commit du vil tilbakestille til.

  • Git Reset moduser:

    • -soft: Flytter den HEAD og gjeldende grenen til den spesifiserte commit, og beholder endringene fra den forrige commit i oppsamlingsområdet. Bruk kommandoen git reset --soft <commit_id>.
    • --mixed: Dette er standardmodusen. Flytter HEAD og gjeldende gren til den spesifiserte commit og fjerner endringene fra forrige commit fra oppsamlingsområdet. Bruk kommandoen git reset --mixed <commit_id>.
    • --hard: Flytter HEAD og gjeldende gren til den spesifiserte commit og forkaster alle endringer fra forrige commit. Vær forsiktig når du bruker den, ettersom alle uforpliktende endringer vil gå tapt. Bruk kommandoen git reset --hard <commit_id>.
    <commit_id>.
  • Git Reset endrer commit historikken og kan føre til tap av data, så bruk den med forsiktighet.

 

Git Revert og Git Reset er kraftige verktøy for å angre og justere forpliktelseshistorikken i Git. Bruk dem forsiktig for å sikre prosjektstabilitet og unngå tap av data.