“git filter-branch”Kommando skriver om hele historien til grenen, noe som betyr at eventuelle forpliktelser som blir fjernet eller endret, vil gå tapt permanent. Derfor antydes det sterkt at du tar sikkerhetskopi av depotet ditt før du bruker denne kommandoen. Dessuten oppretter denne kommandoen nye forpliktelser og Sha Hash. Så det anbefales ikke å bruke den i en offentlig gren.
Denne artikkelen vil diskutere:
Hva er de grunnleggende filteralternativene som er tilgjengelige for kommandoen “Git Filter-Branch”?
De grunnleggende filteralternativene for “git filter-branch”Kommandoer er gitt nedenfor:
Filteralternativer | Beskrivelse |
-Env-filter | Endre miljøet der brukere gjør forpliktelser. |
-trefilter | Omskriv treet og dets innhold. |
-Indeksfilter | Omskriv indeksen. |
-Foreldre-filter | Omskriv Commits overordnede liste. |
-MSG-filter | Skriv om forpliktelsesmeldingene. |
-forpliktelsesfilter | Utføre forpliktelser. |
-Tagnavn-filter | Skriv om tagnavnet. |
-Beskjær | Instruere git-filter-branch for å fjerne tomme forpliktelser. |
Hvordan du bruker "git filter-branch" -kommandoen med alternativet "-tre-filter"?
Noen ganger ønsker brukere å fjerne en spesifikk fil fra alle forpliktelser på grunn av noen grunner, for eksempel om filen inneholder noen konfidensiell eller hemmelig informasjon. I denne situasjonen kan du bruke "git filter -branch -tre -filter 'rm -rf'”Kommando for å fjerne en bestemt fil fra hele historien til et depot.
Følg de oppgitte instruksjonene for å gjøre det.
Trinn 1: Naviger til lokalt depot
Først må du skrive ut den gitte below-kommandoen og omdirigere til ønsket katalog:
$ CD "C: \ git \ local_repo"
Trinn 2: Se depotinnhold
Neste, vis det gjeldende depotets innhold ved hjelp av følgende kommando:
$ ls
I henhold til utdataene nedenfor inneholder det gjeldende depotet to filer. Velg en bestemt fil som må slettes. For eksempel har vi valgt "fil1.tekst”Fil:
Trinn 3: Fjern fil fra hele historien
Kjør deretter den oppgitte kommandoen sammen med det valgte filnavnet for å fjerne den filen:
$ git filter-branch-Tre-filter 'rm -rf file1.tekst'
Her:
Merk: Hvis filen ikke er til stede i noen forpliktelser, må du utføre ""RM -filnavn”Alternativet fungerer ikke for trær og forpliktelser.
Trinn 4: Bekreft endringer
Til slutt, sørg for om filen er fjernet ved å se depotets innhold:
$ ls
Hvordan du bruker "git filter-branch" -kommandoen med alternativet "-index-filter"?
Hvis brukeren ønsker å endre indeksen for depotet i stedet for hele grenen, "git filter-branch -index-filter”Kommando kan brukes. Dette kan være nyttig for å fjerne spesifikke filer fra indeksen.
Trinn 1: Se filer av depot
Utfør kommandoen nedenfor for å liste opp de tilgjengelige filene i det nåværende depotet:
$ git ls-files
Bildet nedenfor viser listen over filer. Velg ønsket fil du vil fjerne fra indeksen. For eksempel har vi valgt "File4.tekst”Fil:
Trinn 2: Fjern fil fra indeksen
Fjern deretter den valgte filen fra indeksen ved å skrive ut følgende kommando:
$ git filter-branch --index-filter 'git rm-cached --ignore-unmatch file4.tekst'
Her:
Trinn 3: Bekreft endringer
Til slutt, kjør den gitt-ga kommandoen for å sikre at filen er slettet fra indeksen:
$ git ls-files
Hvordan du bruker "git filter-branch" -kommandoen med alternativet "-msg-filter"?
Noen ganger vil brukere omskrive den spesifikke forpliktelsesmeldingen fra logghistorikken. For dette formålet, "git filter -branch -f -msg -filter 'sed “s /// g”' --all" kan bli brukt.
Trinn 1: Se forpliktelseshistorikken
Først må du sjekke Commit Sha Hash History of the Current Working Repository:
$ git log --oneline
I skjermbildet nedenfor kan forpliktelseshistorikken sees. Velg ønsket forpliktelsesmelding som må skrives om. For eksempel har vi valgt "File2 lagt til”Forplikt melding:
Trinn 2: Omskriving Commit Message
Neste, utfør følgende kommando for å omskrive den valgte forpliktelsesmeldingen:
$ git filter-branch -f--msg-filter 'sed "s/file2 lagt til/legge til file2/g"'-alt
Her:
Trinn 3: Verifisering
Til slutt må du bekrefte endringene ved å sjekke forpliktelsen i historien:
$ git log --oneline
Det kan observeres at den gamle forpliktelsesmeldingen er erstattet med den nye forpliktelsesmeldingen:
Det handlet om “git filter-branch”Kommando i git.
Konklusjon
“git filter-branch”Kommando brukes til å omskrive forpliktelseshistorien til en bestemt gren eller alle grener i et depot. Det lar brukere utføre forskjellige operasjoner på forpliktelser, for eksempel å fjerne filer, endre forpliktelsesmeldinger osv. Dessuten kan dette brukes til å rydde opp i et spesifikt depot og fjerne sensitiv informasjon. Denne artikkelen forklarte om kommandoen “Git Filter-Branch” og dens filteralternativer.