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.
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-repoArbeta 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.gitTa 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-pathsTa 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 10MSkriva 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.txtErsä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.txtCommit-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 --allSamordna 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-repoersä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
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
- Git Reflog och återställning av historik
- Git Bisect för felsökning
- Underhåll och städning av repositories
- Skriva om historiken med git filter-repo