DevOps-bootcamp · Lektion

Skriva om historiken med git filter-repo

Lär dig skriva om repository-historik i stor skala för att ta bort stora filer eller känsliga data med git filter-repo.

Lektion 4 av 413 steg

Skriva om historiken med git filter-repo är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för DevOps-bootcamp, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.

Varför skriva om historiken?

Ibland måste du skriva om ett repos hela historik: för att ta bort ett läckt lösenord, radera stora filer som råkat committas eller korrigera författares e-postadresser i alla commits.

Möt git filter-repo

git filter-repo är det moderna och snabba verktyget för att skriva om historik. Det ersätter det gamla och långsamma git filter-branch.

Installera verktyget

Det är ett separat program som ofta installeras via pip eller en pakethanterare.

pip install git-filter-repo

Arbeta alltid på en klon

Att skriva om historik är destruktivt. Arbeta på en nyklonad kopia så att du kan kasta bort den om något går fel.

git clone --mirror git@github.com:you/repo.git

Ta bort en fil från historiken

Om du vill rensa bort en fil från varje commit använder du alternativen --path och --invert-paths.

git filter-repo --path secrets.env --invert-paths

Ta bort stora blobbar

Du kan ta bort filer som överskrider en storleksgräns för att minska ett uppsvällt repo.

git filter-repo --strip-blobs-bigger-than 10M

Skriva om författares e-postadresser

Korrigera en felaktig författares e-postadress i alla commits med en mailmap eller callback.

git filter-repo --mailmap my-mailmap.txt

Ersätta text i historiken

Rensa bort hemliga strängar överallt där de förekommer med hjälp av en expressionsfil.

git filter-repo --replace-text expressions.txt

Commit-hashar ändras

Att skriva om historiken skapar nya commit-hashar för allt som påverkas. Repots historik skiljer sig då från alla gamla kopior.

Force-pusha resultatet

Efter omskrivningen måste du force-pusha eftersom den fjärranslutna historiken inte längre stämmer överens.

git push --force --all

Samordna med teamet

Eftersom allas kloner nu är inaktuella måste teammedlemmarna klona om repot. Informera om omskrivningen för att undvika att den borttagna datan återuppstår.

Snabbtest

Testa dina kunskaper om att skriva om historik.

Sammanfattning

Du har lärt dig att skriva om historik:

  • git filter-repo ersätter filter-branch
  • Ta bort filer, stora blobbar eller hemlig text från hela historiken
  • Arbeta alltid på en klon; commit-hashar ändras
  • Force-pusha och låt teamet klona om repot efteråt
Gratis att börja

Lär dig DevOps-bootcamp med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
142
Lektioner
568

Vanliga frågor

Är lektionen ”Skriva om historiken med git filter-repo” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Skriva om historiken med git filter-repo”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.

Vad lär jag mig i ”Skriva om historiken med git filter-repo”?

Lär dig skriva om repository-historik i stor skala för att ta bort stora filer eller känsliga data med git filter-repo. Ni övar på DevOps-bootcamp med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig DevOps-bootcamp?

Du behöver inga förkunskaper. Utbildningen i DevOps-bootcamp på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Skriva om historiken med git filter-repo”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här DevOps-bootcamp-lektionen?

Ja. Varje DevOps-bootcamp-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Git Reflog och återställning av historik
  2. Git Bisect för felsökning
  3. Underhåll och städning av repositories
  4. Skriva om historiken med git filter-repo
← Tillbaka till DevOps-bootcamp