Git: Slik fjerner du en fil fra Commit

Git: Slik fjerner du en fil fra Commit

Ulykker skjer hvis du jobber i Git. Du har kanskje ved et uhell inkludert en fil som ikke burde være der, eller forpliktelsen din er ikke veldig tydelig. Dette er bare noen scenarier når du kanskje ønsker å slette en fil fra en commit.

Git: Slik fjerner du en fil fra Commit

Denne guiden vil fortelle deg nøyaktig hvordan du sletter en fil fra en commit og hvorfor du bør være ekstra forsiktig med sletting av Git-filer.

Hvordan fjerne en fil fra en Git Commit

Det er noen få måter å slette en fil fra en Git commit, avhengig av om det er en lokal commit eller om du allerede har presset den til en ekstern repo. Den enkle måten ville være å slette hele commit i Git , men hvis du vil holde på de fleste filene, er det slik du kan bruke "git reset" for å slette en fil fra et lokalt depot:

  1. Bruk git log for å finne commit som har filen du vil fjerne.
    Git: Slik fjerner du en fil fra Commit
  2. Utfør git reset –soft HEAD^ for å angre den siste commit, men behold endringene i sceneområdet.
    Git: Slik fjerner du en fil fra Commit
  3. Fjern filen du vil fjerne med git reset HEAD .
    Kjører" in terminal" width="578" height="363" data-recalc-dims="1" data-src="https://i0.wp.com/www.alphr.com/wp-content/uploads/ 2023/12/Removing-a-File-From-a-Commit-Step-by-Step-3.png?resize=578%2C363&ssl=1" data-srcset="https://i0.wp.com/www .alphr.com/wp-content/uploads/2023/12/Removing-a-File-From-a-Commit-Step-by-Step-3.png?w=578&ssl=1 578w, https://i0. wp.com/www.alphr.com/wp-content/uploads/2023/12/Removing-a-File-From-a-Commit-Step-by-Step-3.png?resize=300%2C188&ssl=1 300w , https://i0.wp.com/www.alphr.com/wp-content/uploads/2023/12/Removing-a-File-From-a-Commit-Step-by-Step-3.png?resize =510%2C320&ssl=1 510w, https://i0.wp.com/www.alphr.com/wp-content/uploads/2023/12/Removing-a-File-From-a-Commit-Step-by- Step-3.png?resize=400%2C250&ssl=1 400w, https://i0.wp.com/www.alphr.com/wp-content/uploads/2023/12/Removing-a-File-From-a -Commit-Step-by-Step-3.png?resize=302%2C190&ssl=1 302w" data-sizes="(max-width: 578px) 100vw, 578px">
  4. Overfør resten av filene igjen ved å bruke git commit -m 'Din forpliktelsesmelding.'
    Git: Slik fjerner du en fil fra Commit

Siden Git 2.23.0-oppdateringen kan du også bruke "git restore" slik:

  1. Skriv inn git restore –staged og erstatt "filepath" med filen du ønsker å fjerne.
    Utførelse av" kommando på kommandolinjen" width="578" height="363" data-recalc-dims="1" data-src="https://i0.wp.com/www.alphr.com/wp-content /uploads/2023/12/git-restore-1.png?resize=578%2C363&ssl=1" data-srcset="https://i0.wp.com/www.alphr.com/wp-content/uploads/ 2023/12/git-restore-1.png?w=578&ssl=1 578w, https://i0.wp.com/www.alphr.com/wp-content/uploads/2023/12/git-restore-1 .png?resize=300%2C188&ssl=1 300w, https://i0.wp.com/www.alphr.com/wp-content/uploads/2023/12/git-restore-1.png?resize=510% 2C320&ssl=1 510w, https://i0.wp.com/www.alphr.com/wp-content/uploads/2023/12/git-restore-1.png?resize=400%2C250&ssl=1 400w, https: //i0.wp.com/www.alphr.com/wp-content/uploads/2023/12/git-restore-1.png?resize=302%2C190&ssl=1 302w" data-sizes="(max-width : 578px) 100vw, 578px">
  2. Deretter commit: git commit -c ORIG_HEAD .
    Git: Slik fjerner du en fil fra Commit

Et annet alternativ for å fjerne filen fullstendig er å gjøre dette:

  1. Fjern filen med git rm .
    Git: Slik fjerner du en fil fra Commit
  2. Erstatt "filnavn" med filens faktiske navn.
  3. Commit med endringsflagget ved å skrive inn git commit –amend .
    Git: Slik fjerner du en fil fra Commit

Kommandoen "rm" fjerner en fil fra både arbeidstreet og indeksen. Det betyr at den vil være helt borte fra både den lokale og eksterne reposen. Det er en nyttig kommando når du sporer en fil og senere bestemmer deg for at den ikke trenger å spores lenger, slik at du kan slette den fra hele prosjektet.

Du kan også vurdere å slette selve Git-grenen hvis du vil fjerne alle forpliktelser og filer i en gren.

Hvorfor fjerne en fil fra en Git Commit?

Det er flere grunner til at du kanskje må fjerne en fil fra en Git-commit. La oss ta en titt på noen.

Forenkling av forpliktelseshistorikk

I store og komplekse prosjekter kan forpliktelseshistorikken bli overbelastet med endringer, oppdateringer og rettelser. Og noen av disse endringene trenger rett og slett ikke å være der. Noen ganger kan en fil være forpliktet som ikke gjør noen fordeler for prosjektets fremgang eller klarhet – som en eksperimentell funksjon som ikke fant ut eller en midlertidig fil som har overholdt sin velkomst.

Fjerning av slike filer fra commits kan gjøre prosjektets historie betraktelig og gjøre det lettere for teammedlemmer å forstå utviklingstidslinjen. Hvis du er en del av et team, hjelper en klar og kortfattet forpliktelseshistorikk at teammedlemmene dine stemmer overens med prosjektets utvikling og holder dem orientert uten å kaste bort tid på å tyde kompleks kode.

Retting av feil

Å rette feil er kanskje den vanligste årsaken til å fjerne en fil fra en commit i Git. For eksempel kan du ha kommet for sent på et prosjekt, og i all hast har du lagt til en feilsøkingsloggfil i commit-en din. Eller, etter å ha forpliktet deg, innså du at du inkluderte en versjon av en fil som ikke er endelig eller oppdatert, men en eldre WIP. Alternativt kan filen være noe helt uønsket eller skadelig.

I slike situasjoner vil sletting av en fil fra en commit bevare integriteten til commit-historikken og holde den ren fra unødvendige eller potensielt skadelige filer. Du vil sikre at bare det tiltenkte innholdet kommer til det endelige utkastet.

Fjerning av sensitive eller klassifiserte data

Det er enklere enn det kan virke å ved et uhell begå sensitive data. Men det er en feil som kan få alvorlige konsekvenser. For eksempel er API-nøkler en stor del av mange kodeprosjekter i dag, spesielt med fremveksten av AI og mer intens nettintegrering. Men API-nøkler er private og må holdes unna nysgjerrige øyne. Du kan jobbe med en ny funksjon ved å bruke en API og ved et uhell begå en fil som inneholder nøkkelen eller en konfigurasjonsfil med databaselegitimasjon.

Denne typen tilsyn kan forårsake sikkerhetssårbarheter, og potensielt avsløre sensitiv informasjon for uautoriserte personer. I slike scenarier går det å fjerne filen fra commit utover enkel feilretting – det er noe du må gjøre, spesielt hvis du jobber som en del av et team eller for et selskap. Det ligner på å innse at du ved et uhell har delt et konfidensielt dokument i en offentlig mappe og raskt flytte det til et trygt sted.

Betraktninger å huske på

Noen ganger er det ikke så enkelt å slette en fil fra et depot som du ønsker. Unngå disse mulige problemene.

Depotkonflikter

Å fjerne filer fra offentlige eller delte forpliktelser er ikke noe du bør gjøre tilfeldig. Avhengig av filens natur og prosjekttype, kan det frustrere eller forvirre de i teamet ditt betydelig. Dessuten forårsaker det konflikter mellom deres lokale depoter og fjernkontrollen. Så før du sletter en fil, ta en rask prat med teamet ditt og forklar dem hva du gjør og hvorfor.

Dette kan være så enkelt som å sende en melding på teamets chat-plattform eller ta det opp i et stand-up-møte. Denne heads-up handler ikke bare om å være høflig. Det lar teammedlemmene fortsette arbeidet sitt forstyrret. Det åpner også døren for tilbakemelding – kanskje en lagkamerat har en grunn til å beholde den filen i commit, eller kanskje de har en bedre løsning på problemet.

Tapte data

Når du renser depotet ditt, ønsker du ikke å kaste noe som er viktig, spesielt i større prosjekter. Så før du forplikter deg til å slette en fil, ta et sekund, til og med en tredjedel, se på filen du er i ferd med å fjerne.

Spør deg selv: "Inneholder denne filen noen kode, data eller informasjon som kan være nødvendig senere?" Det er som å gå gjennom en gammel mappe på datamaskinen; noen ganger finner du filer som virket uviktige på den tiden, men som har verdi nå. På denne måten vil du ikke havne i en situasjon hvor du febrilsk søker etter en kode eller data som du feilaktig anså som unødvendig før.

Tilbakestilling er bedre for offentlige depoter

Når du arbeider med offentlige depoter, er det ofte bedre å bruke " git revert " som en ikke-destruktiv måte å fjerne noe fra depotet. Den lar deg angre endringer på en gjennomsiktig og sporbar måte som teammedlemmene dine enkelt kan følge.

Hvis du jobber med åpen kildekode-prosjekter eller offentlig samarbeid der endringer kan påvirke et bredt spekter av bidragsytere, holder dette alt klart. Kommandoen "git revert" skaper i hovedsak en ny commit som angrer endringene fra en tidligere uten å endre prosjektets historie. Det viser respekt for andre samarbeidspartnere, og det opprettholder kontinuiteten og integriteten til prosjektets tidslinje. Du retter åpenlyst en feil i et gruppeprosjekt og bevarer alles bidrag. Og prosjektets historie forblir intakt for alle å se og forstå.

Hold Git-historien ryddig

Det er lett ved et uhell å inkludere en fil som ikke har plass i en Git-commit i en Git-commit. Heldigvis er det også enkelt å tilbakestille denne inkluderingen. Avhengig av hva du ønsker, er det forskjellige måter å oppnå dette på. Bare husk å ha teamet ditt i tankene hvis du er et teammedlem, og hold de lokale og eksterne depotene konsekvente.

Har du noen gang ved et uhell inkludert en feil fil i Git commit? Hva var løsningen din? Legg igjen en kommentar nedenfor. Vi er alltid ivrige etter å lese dem.


BBC bryter 13-års robotfred ved å bringe robotkriger tilbake til britisk TV

BBC bryter 13-års robotfred ved å bringe robotkriger tilbake til britisk TV

Det har gått 13 år siden Craig Charles introduserte Robot Wars til en nasjon som jakter på blodet (eller oljen) fra kampklare roboter. «Grop, grop, grop» sa de

Supermarked sparker Fabio-roboten etter en uke med krypende folk

Supermarked sparker Fabio-roboten etter en uke med krypende folk

Som en generell tommelfingerregel, hvis den første arbeidsuken din ender med at du blir pakket inn i bobleplast og sendt over hele byen, har du sannsynligvis satt en fot

Apple Notes: Slik endrer du størrelse på tabellkolonner eller rader

Apple Notes: Slik endrer du størrelse på tabellkolonner eller rader

Lær hvordan du endrer størrelsen på tabellkolonnen eller radene i Apple Notes på iPhone, iPad eller Mac for å justere høyden og bredden i denne veiledningen.

Apple Pay: Slik legger du til et kort

Apple Pay: Slik legger du til et kort

Å bruke Apple Pay til å betale med iPhone, iPad, Apple Watch eller Mac er ekstremt praktisk. Men hvordan legger du til kortdetaljene dine på mobilen

Hva er forskjellen mellom Google Keep og oppgaver?

Hva er forskjellen mellom Google Keep og oppgaver?

Du er ikke alene hvis du er forvirret over hvorfor Google har flere gjøremålsapper. På overflaten har Google Keep og Google Tasks samme formål. Men når

Life360 vs. Familie360

Life360 vs. Familie360

Hvis du leter etter en flott GPS-familiesøker, kan du være usikker på mellom Life360 eller Family360. Begge er velkjente familiesporingsapper med en

Slik sletter du alle dine lagrede søk på Twitter

Slik sletter du alle dine lagrede søk på Twitter

Twitters lagrede søk-alternativ lar deg raskt få tilgang til søkene dine via menyen ved siden av søkeboksen. Du kan gå tilbake til dine lagrede søk

Kan Venmo sende penger til kontanter-appen?

Kan Venmo sende penger til kontanter-appen?

Både Venmo og Cash App er først og fremst ment for peer-to-peer-overføringer. Siden de tilbyr den samme tjenesten, er det naturlig å se dem som rivaler. Men

Hvordan finne slettede venner i Snapchat

Hvordan finne slettede venner i Snapchat

Hvis noen plager deg på Snapchat eller du finner snapsene deres uinteressante, er et alternativ du har i tillegg til å blokkere dem å fjerne dem fra

De beste BaldurS Gate 3-våpnene

De beste BaldurS Gate 3-våpnene

Som i mange partibaserte rollespill (RPG)-spill som foregår i universet til Dungeons and Dragons, krever Baldur's Gate 3 (BG3) at spillerne går opp i nivå med