Git: Sådan fjerner du en fil fra Commit

Git: Sådan fjerner du en fil fra Commit

Ulykker sker, hvis du arbejder i Git. Du har muligvis ved et uheld inkluderet en fil, der ikke burde være der, eller din forpligtelse er ikke særlig klar. Dette er blot nogle scenarier, hvor du måske ønsker at slette en fil fra en commit.

Git: Sådan fjerner du en fil fra Commit

Denne guide fortæller dig præcis, hvordan du sletter en fil fra en commit, og hvorfor du skal være ekstra forsigtig med sletning af Git-filer.

Sådan fjerner du en fil fra en Git Commit

Der er et par måder at slette en fil fra en Git commit, afhængigt af om det er en lokal commit, eller om du allerede har skubbet den til en ekstern repo. Den enkle måde ville være at slette hele commit i Git , men hvis du vil beholde de fleste af filerne, er det sådan her du kan bruge "git reset" til at slette en fil fra et lokalt lager:

  1. Brug git log til at finde den commit, der har den fil, du vil fjerne.
    Git: Sådan fjerner du en fil fra Commit
  2. Udfør git reset –soft HEAD^ for at fortryde den sidste commit, men behold ændringerne i iscenesættelsesområdet.
    Git: Sådan fjerner du en fil fra Commit
  3. Fjern den fil, du vil fjerne, med git reset HEAD .
    Kø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. Commit resten af ​​filerne igen ved hjælp af git commit -m 'Din commit besked.'
    Git: Sådan fjerner du en fil fra Commit

Siden Git 2.23.0-opdateringen kan du også bruge "git restore" som dette:

  1. Indtast git restore –staged og erstat "filepath" med den fil, du ønsker at fjerne.
    Udførelse af" 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. Så commit: git commit -c ORIG_HEAD .
    Git: Sådan fjerner du en fil fra Commit

Et andet alternativ til helt at fjerne filen er at gøre dette:

  1. Fjern filen med git rm .
    Git: Sådan fjerner du en fil fra Commit
  2. Erstat "filnavn" med filens faktiske navn.
  3. Commit med ændringsflaget ved at indtaste git commit –amend .
    Git: Sådan fjerner du en fil fra Commit

Kommandoen "rm" fjerner en fil fra både arbejdstræet og indekset. Det betyder, at det vil være helt væk fra både det lokale og fjerntliggende repos. Det er en nyttig kommando, når du sporer en fil og senere beslutter, at den ikke længere skal spores, så du kan slette den fra hele projektet.

Du kan også overveje at slette selve Git-grenen, hvis du vil fjerne alle commits og filer i en branch.

Hvorfor fjerne en fil fra en Git Commit?

Der er flere grunde til, at du muligvis skal fjerne en fil fra en Git-commit. Lad os tage et kig på et par stykker.

Forenkling af Commit History

I store og komplekse projekter kan commit-historikken blive overbelastet med ændringer, opdateringer og rettelser. Og nogle af disse ændringer behøver simpelthen ikke at være der. Nogle gange kan en fil være forpligtet, der ikke gør nogen fordele for projektets fremskridt eller klarhed – som en eksperimentel funktion, der ikke slog ud, eller en midlertidig fil, der har overskredet sin velkomst.

Fjernelse af sådanne filer fra commits kan rydde op i dit projekts historie betydeligt og gøre det nemmere for teammedlemmer at forstå udviklingstidslinjen. Hvis du er en del af et team, hjælper en klar og kortfattet forpligtelseshistorie dine teammedlemmer med at tilpasse sig dit projekts udvikling og holder dem orienteret uden at spilde tid på at tyde kompleks kode.

Korrigering af fejl

At rette fejl er måske den mest almindelige årsag til at fjerne en fil fra en commit i Git. For eksempel kan du have været for sent på et projekt og i hast ved et uheld tilføjet en fejlretningslogfil til din commit. Eller, efter at have begået, indså du, at du inkluderede en version af en fil, der ikke er endelig eller opdateret, men en ældre WIP. Alternativt kan filen være noget helt uønsket eller skadeligt.

I sådanne situationer bevarer sletning af en fil fra en commit integriteten af ​​din commit-historik og holder den ren fra unødvendige eller potentielt skadelige filer. Du vil sikre dig, at kun det tilsigtede indhold når det endelige udkast.

Fjernelse af følsomme eller klassificerede data

Det er nemmere end det kan se ud til ved et uheld at begå følsomme data. Men det er en fejl, der kan have alvorlige konsekvenser. For eksempel er API-nøgler en stor del af mange kodningsprojekter i dag, især med fremkomsten af ​​AI og mere intens webintegration. Men API-nøgler er private og skal holdes væk fra nysgerrige øjne. Du kan arbejde på en ny funktion ved hjælp af en API og ved et uheld begå en fil, der indeholder nøglen eller en konfigurationsfil med databaselegitimationsoplysninger.

Denne form for tilsyn kan forårsage sikkerhedssårbarheder og potentielt afsløre følsomme oplysninger for uautoriserede personer. I sådanne scenarier går fjernelse af filen fra commit ud over simpel fejlretning – det er noget, du skal gøre, især hvis du arbejder som en del af et team eller for en virksomhed. Det svarer til at indse, at du ved et uheld har delt et fortroligt dokument i en offentlig mappe og hurtigt flytter det et sikkert sted.

Overvejelser at huske på

Nogle gange er sletning af en fil fra et lager ikke så ligetil, som du ønsker. Undgå disse mulige problemer.

Lagerkonflikter

Fjernelse af filer fra offentlige eller delte commits er ikke noget, du skal gøre tilfældigt. Afhængigt af filens karakter og projekttype, kan det frustrere eller forvirre dem i dit team betydeligt. Desuden forårsager det konflikter mellem deres lokale depoter og fjernbetjeningen. Så før du sletter en fil, skal du tage en hurtig chat med dit team og forklare dem, hvad du laver og hvorfor.

Dette kunne være så simpelt som at sende en besked på dit teams chatplatform eller tage den op i et stand-up møde. Denne heads-up handler ikke kun om at være høflig. Det lader dine teammedlemmer fortsætte deres arbejde forstyrret. Det åbner også døren for feedback – måske har en holdkammerat en grund til at beholde den fil i commit, eller måske har de en bedre løsning på problemet ved hånden.

Tabte data

Når du rydder dit lager, ønsker du ikke at smide noget ud, der er vigtigt, især i større projekter. Så før du forpligter dig til at slette en fil, så tag et sekund, endda en tredjedel, se på den fil, du er ved at fjerne.

Spørg dig selv: "Indeholder denne fil nogen kode, data eller oplysninger, der kan være nødvendige senere?" Det er som at gå gennem en gammel mappe på din computer; nogle gange finder du filer, der virkede ligegyldige på det tidspunkt, men som holder værdi nu. På denne måde ender du ikke i en situation, hvor du febrilsk leder efter et stykke kode eller data, som du fejlagtigt anså for unødvendig før.

Revert er bedre for offentlige arkiver

Når du har at gøre med offentlige depoter, er det ofte bedre at bruge " git revert " som en ikke-destruktiv måde at fjerne noget fra depotet. Det lader dig fortryde ændringer på en gennemsigtig og sporbar måde, som dine teammedlemmer nemt kan følge.

Hvis du arbejder på open source-projekter eller en offentlig samarbejdsindsats, hvor ændringer kan påvirke en bred vifte af bidragydere, holder dette alt klart. Kommandoen "git revert" skaber i det væsentlige en ny commit, der fortryder ændringerne fra en tidligere uden at ændre projektets historie. Det er respektfuldt over for andre samarbejdspartnere, og det bevarer kontinuiteten og integriteten af ​​projektets tidslinje. Du retter åbenlyst en fejl i et gruppeprojekt og bevarer alles bidrag. Og projektets historie forbliver intakt, så alle kan se og forstå.

Hold Git-historien ryddelig

Det er nemt ved et uheld at inkludere en fil, der ikke har nogen plads i en Git-commit, i en Git-commit. Heldigvis er det også nemt at fortryde denne inklusion. Afhængigt af hvad du ønsker, er der forskellige måder at opnå dette på. Bare husk at have dit team i tankerne, hvis du er et teammedlem, og hold de lokale og eksterne lagre konsekvente.

Har du nogensinde ved et uheld inkluderet en forkert fil i din Git commit? Hvad var din løsning? Smid en kommentar nedenfor. Vi er altid ivrige efter at læse dem.


Sådan fortæller du, om nogen blokerede dig i Messenger

Sådan fortæller du, om nogen blokerede dig i Messenger

Når du forsøger at nå nogen på Messenger uden held, er en af ​​de mulige årsager, at du er blevet blokeret. Erkendelsen er ikke behagelig,

Sådan finder du din server-IP-adresse i Minecraft

Sådan finder du din server-IP-adresse i Minecraft

Vil du opsætte din egen multiplayer Minecraft-server? Vil du finde serverens IP-adresse i Minecraft, så andre kan oprette forbindelse til din

Sådan sælger du et skib i Starfield

Sådan sælger du et skib i Starfield

Spillere kan eje flere skibe i Starfield. De er et fremragende transportmiddel til at krydse den store galakse. Men du kan kun holde 10 fartøjer i

Sådan fabriksindstilles A Meta Quest 2

Sådan fabriksindstilles A Meta Quest 2

Hvis du ejer et Oculus Quest 2 virtual reality-headset, har du måske oplevet tekniske problemer, der kompromitterer brugeroplevelsen. Heldigvis der

BaldurS Gate 3 undermørke indgang

BaldurS Gate 3 undermørke indgang

The Underdark er et farligt underjordisk område i "Baldur's Gate 3." Den er fyldt til randen med dødbringende skabninger, men den rummer også dyrebare genstande,

Lyft vs. Uber-driverkrav

Lyft vs. Uber-driverkrav

Med potentialet til at tjene når som helst, hvor som helst og sætte din egen tidsplan, lyder det som en god handel at blive chauffør med Lyft eller Uber. Men om du er

Sådan aktiverer du cookies

Sådan aktiverer du cookies

Enhver, der har været online, er sandsynligvis stødt på en pop-up, der siger, "Dette websted bruger cookies." Du har altid mulighed for enten at acceptere alle

Hold dig sikker uden for kontoret

Hold dig sikker uden for kontoret

Dit firmanetværk er muligvis låst mere sikkert end Fort Knox, men det betyder ikke, at dine fjernarbejdende og vejkrigere har det så godt

Sådan tager du billeder i kongerigets tårer

Sådan tager du billeder i kongerigets tårer

"The Legend of Zelda: Tears of the Kingdom" (TotK) har en stor, smuk verden. Der er så meget at se og nyde, du kan have øjeblikke, hvor du ønsker dig

Sådan laver du et bord i Obsidian

Sådan laver du et bord i Obsidian

Obsidian-brugere kan lave mange ting med note-appen, inklusive tabeller. En tabel giver en måde at nedbryde komplekse oplysninger og sammenligne